唐僧爱吃唐僧肉 2017-04-16 07:56 采纳率: 16.7%
浏览 1350
已采纳

求大神详解:为什么这题我的程序不能输出正确结果?

选择排序法。用选择排序法将N(N为5)个数从小到大排序后输出。
**输入格式要求:"%d" 提示信息:"Enter No.%2d:"
**输出格式要求:"%d"
程序运行示例如下:
Enter No. 1:5
Enter No. 2:7
Enter No. 3:3
Enter No. 4:9
Enter No. 5:8
35789
#include
#define N 5
int Paixu(int b[N]);
int main()
{
int a[N],c[N];
int i;
for(i=1;i<=N;i++)
{
printf("Enter No.%2d:",i);
scanf("%d",&a[i-1]);
}
c[N]=Paixu(a);
for(i=1;i<=N;i++)
{
printf("%d",c[i-1]);
}
}
int Paixu(int b[N])
{
int k,temp,j;
for(k=1;k<=N-1;k++)
{
if(b[k]>b[k-1])
{
temp=b[k];
b[k]=b[k-1];
b[k-1]=temp;
}
}

return b[N];
}
结果好像是随机数,为什么啊?求大神指教。急急急,在线等

  • 写回答

2条回答 默认 最新

  • threenewbee 2017-04-16 07:59
    关注

    if(b[k]>b[k-1])
    temp=b[k];
    b[k]=b[k-1];
    b[k-1]=temp;
    这里没有大括号
    if(b[k]>b[k-1])
    {
    temp=b[k];
    b[k]=b[k-1];
    b[k-1]=temp;
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?