问题描述
- 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循环结束后数组从小到大排序。这个要怎么写呀,我想了好久想不出来
解决方案
#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");
}是不是这样,看看行不
解决方案三:
你的题目啰里啰唆废话半天其实就是一句话,用冒泡法排序。
解决方案四:
这种问题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");
}
解决方案六:
题目还是要自己做,哪怕出错,你发出让大家帮你解答也比这样好
时间: 2024-10-22 23:49:39