当前位置:首页 » 编程语言 » 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;

}

代码图片和运行样例: