當前位置:首頁 » 編程語言 » c語言中n個數據的從小到大排序
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中n個數據的從小到大排序

發布時間: 2022-12-22 18:36:32

A. c語言中從鍵盤輸入N個字元串,將字元串按從小到大的順序排列並輸出

1
輸入字元串;
2
對字元串進行排序;
3
輸出。
排序中需要注意:
1
用strcmp比較字元串;
2
用strcpy執行字元串的賦值。
代碼如下:
#define N 50
int main()
{
char s[N][100];
int i,j;
for(i = 0; i < N; i ++)
scanf("%s",s[i]);
for(i = 0; i < N-1; i ++)
{
for(j = i+1; j < N; j ++)
{
if(strcmp(s[i],s[j])>0)
{
char t[100];
strcpy(t,s[i]);
strcpy(s[i],s[j]);
strcpy(s[j],t);
}
}
}
for(i = 0; i < N; i ++)
puts(s[i]);
}

B. C語言中,如何判斷n個值的大小情況,並按從小到大順序輸出

自己可以根據情況選擇排序,如果對效率要求不高就採用冒泡選擇排序這一類的,如果要求效率比較高就採用快速排序(這個對初學者有點難)根據自己的需要採用合適的演算法就行瞭望採納~

C. C語言輸入N個數,將其從小到大輸出

說實在的,程序寫的確實比較差。
改這個程序比較麻煩,我猜測的你的原意
#include<stdio.h>
void main()
{
int a[4],b[4];
int i,j,n,sum;
for(n=0;n<=3;n++)scanf("%d",&a[n]);
for(i=0;i<=3;i++){
sum=(a[i]>a[0])+(a[i]>a[1])+(a[i]>a[2])+(a[i]>a[3]);
if(sum==3)b[3]=a[i];
else if(sum==2)b[2]=a[i];
else if(sum==1)b[1]=a[i];
else b[0]=a[i];
}
for(j=0;j<=3;j++)
printf("%d\n",b[j]);
}

不過問題比較多:
1、第二個for丟失了大括弧(建議無論是否需要都先打上,以防忘記)
2、
if(sum=3)a[3]=a[i];
else if(sum=2)a[2]=a[i];
else if(sum=1)a[1]=a[i];
else a[0]=a[i];
這個sum=3等應當寫成sum==3
而且就這個,直接a[sum]=a[i]不是一樣嗎?
3、你要是修改了a[i]的值後面就錯了,所以我給你添了b[4]
4、你沒有考慮可以存在兩個數或者多個數相同的情況。
5、你這個選擇排序只是有個思路,距離編成程序還遠

D. C語言中請問,輸入任意的n個數,實現從小到大排列的演算法。

定義一個較大的數組,如int a[1000]; //1000個足夠了吧,不夠可以再加
輸入數據時,增加一個記數器,如:
int num,cnt=0;
while( scanf("%d",&num ) == 1 )
{
a[cnt]=num ;

cnt++ ;

}
這樣,你就知道輸入多少個數了,然後,排序時,也就是知道排多少個數了。

E. 用選擇法對數組中的N個元素按從小到大的順序排列 用 C語言編寫 謝謝啦

我今天又學習到了選擇演算法,呵呵,我一開始猜想是冒泡排序呢,剛學習的

#include<stdio.h>
#defineN10
voidmain()
{
intData[N];
inti,j,temp;
for(i=0;i<N;i++)
{
printf("請輸入第%d個數:",i+1);
scanf("%d",&Data[i]);
}
//開始選擇排序
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(Data[i]>Data[j])
{
temp=Data[i];
Data[i]=Data[j];
Data[j]=temp;
}
}
}
//選擇排序結束
for(i=0;i<N;i++)
{
printf("排序後第%d個數為:%d ",i+1,Data[i]);
}
}

希望對你有幫助。

F. C語言編程題 輸入n個整數 按照從小到大的順序排列

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,a[100],i=0,j,temp;
printf("請輸入數的個數:");
scanf("%d",&n);
printf("\n請輸入要排序的數:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
for(j=i;j<n;j++)
if(a[j]<a[i])
temp=a[i],a[i]=a[j],a[j]=temp;
printf("排序後:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}

G. C語言:對輸入的十個數進行從小到大排序

1、首先打開編輯軟體,新建一個c程序空文件,引入標准庫和主函數,定義一個QuickSort函數用來排序,下面首先編寫排序函數的:

H. c語言中從鍵盤輸入N個字元串,將字元串按從小到大的順序排列並輸出

代碼如下:

#define N 10 int main(){char str[N][100]; int i,j; for(i = 0; i < N; i ++) scanf("%s",str[i]); for(i = 0; i < N-1; i ++) { for(j = i+1; j < N; j ++){ if(strcmp(str[i],str[j])>0) { char temp[100]; strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp);} } } for(i = 0; i < N; i ++) puts(str[i]);}。

運行代碼:

(8)c語言中n個數據的從小到大排序擴展閱讀

在C語言編程中,常常需要對字元串比較和排序,經常遇到對字元串整體的控制等操作,strcmp 比較str1和str2的大小,而其它的c函數strlen(),字元串拷貝函數strcpy()/strncpy(),字元串比較函數 strcmp(),字元串連接函數strcat()/strncat()等,都可以幫助我們快速方便的對字元串操作。

I. c語言給定n個正整數,根據各位數字之和從小到大進行排序.

#include<stdio.h>
intmain()
{
intn,m,k,t,i,j;
inta[1000],b[1000]={0};
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
m=a[i];
do
{
b[i]=b[i]+m%10;
m=m/10;
}while(m!=0);
}
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(b[k]>b[j])
k=j;
if(k!=i)
{t=a[k];a[k]=a[i];a[i]=t;
t=b[k];b[k]=b[i];b[i]=t;}
}
for(i=0;i<n-1;i++)
printf("%d",a[i]);
printf("%d ",a[n-1]);
}
return0;
}

J. 用c語言編程:鍵盤上輸入N個整數,使該數組中的數按照從小到大的次序排列(選擇法排序)

#include "stdio.h"

#define N 10

int main(int argc,char *argv[]){

int a[N],i,j,k;

printf("Please enter %d integer(s)... ",N);

for(i=0;i<N;scanf("%d",a+i++));//輸入

for(i=0;i<N;i++){//選擇法排序

for(k=i,j=k+1;j<N;j++)

if(a[k]>a[j])

k=j;

if(k!=i)

j=a[k],a[k]=a[i],a[i]=j;

printf("%d ",a[i]);

}

printf(" ");

return 0;

}

代碼圖片和運行樣例: