求高手不吝指教,谢谢!!!
题:随机输入10个整数,用C编程将其从大到小依次输出。我编程如下,思想为:从第一个数开始,将其与后面的每个数比较,求出最大值,若最大值不是第一个数,则将最大值与第一个数互换位置;然后又从第二个数开始,将第二个数与后面的每个数比较,求出最大值,若最大值不是第二个数,则将此最大值与第二个数互换位置;依此类推,直至最后一位。但按如下程序运行,输出结果却不正确。求解!!!
#include<stdio.h>
void main()
{
long a[10],max,mid;
int b,c;
printf("\nplease input ten numbers:\n");
for(b=0;b<10;b++)
scanf("%d",&a[b]);
for(c=0;c<10;c++)
{
max=a[c];
for(b=c+1;b<10;b++)
{
if(max<a[b])
max=a[b];
}
if(max!=a[c])
{
mid=a[c];
a[c]=max;
a[b]=mid;
}
}
for(c=0;c<10;c++)
printf("\n%d",a[c]);
}