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

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

问题描述:

选择排序法。用选择排序法将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];
}
结果好像是随机数,为什么啊?求大神指教。急急急,在线等

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;
}

返回数为多个的时候只能以指针形式返回
#include
#define N 5
int main()
{
int a[N];
int i;
for(i=1;i<=N;i++)
{
printf("Enter No.%2d:",i);
scanf("%d",&a[i-1]);
}
int k,temp,j;
for(k=0;k {
for(j=k+1;j {
if(a[j]>a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
for(i=1;i<=N;i++)
{
printf("%d",a[i-1]);
}
return 0;
}