C语言的一个程序,求大神

三、实验内容
1、实验题目:手动输入10个0~100之内的整数,按从小到大排列输出。:
(1)要求
排序算法:
使数组从小到大排序的规则如下:
⑴ 设数组为a[0],a[1],…,a[n-1],构造i循环从0,1,…,n-2变化,构造j循环从i+1,i+2,…,n-1变化,即j>i。
⑵ 对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]。
⑶ 对于任何一个a[i],都循环一次j,j循环完成后a[i]必不大于a[i+1],…,a[n-1],重复i循环,i循环结束后数组从小到大排序。

这个要怎么写呀,我想了好久想不出来

5个回答

#include
void main()
{
int s[10],i,k=1,j,n,t;
for(i=0;i<10;i++,k++)
{
printf("NO%d:",k);
scanf("%d",&s[i]);

}
for(i=0;i<9;i++)
{
    n=i;
    for(j=i+1;j<10;j++)
        if(s[n]>s[j])
            n=j;
        t=s[i];
        s[i]=s[n];
        s[n]=t;
}
printf("排序结果为:");
for(i=0;i<10;i++)
    printf("%5d",s[i]);
    printf("\n");

}是不是这样,看看行不

a865386512
a865386512 大神谢谢拉
接近 6 年之前 回复

你的题目啰里啰唆废话半天其实就是一句话,用冒泡法排序。

这种问题CSDN都不禁止,就要变成大学C语言课程无需动手免费解答网站了。

#include <stdio.h>
void main()
{
char a[10];
int i,j,temp;
for( i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<=9;j++) 
{ 
for (i=0;i<10-j;i++) 
if (a[i]>a[i+1]) 
{ 
temp=a[i]; 
a[i]=a[i+1]; 
a[i+1]=temp;
} 
} 
for(i=0;i<10;i++) 
printf("%d,",a[i] ); 
printf("\n");
}

kingduke
kingduke 冒泡排序
接近 6 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐