C语言,编写一个函数,函数是用选择排序法将数组排序

#include<stdio.h>
int px(int a[])
{int m,l,p,q,temp;
for(p=1;p<=(m-2);p++)
{l=p;
for(q=p+1;q<=(m-1);q++)
if(a[l]>a[q])
{l=q;
temp=a[p],a[p]=a[l];a[l]=temp;}
}
for(p=1;p<m;p++)
printf("%d",a[p]);
}
main()
{int i,a[10];
for(i=1;i<10;i++)
{printf("成绩:");
scanf("%d",&a[i]);}
px(10);
for(i=1;i<10;i++)
printf("%d",a[i]);
printf("\n");}
哪里有问题?

#include<stdio.h>
void px(int a[])
{
int i,temp,j;
for(i=0;i<10;i++)
{
for(j=i;j<10;j++)
{
if(a[i]<=a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
void main()
{
int i,a[10];
for(i=0;i<10;i++)
{
printf("成绩:");
scanf("%d",&a[i]);
}
px(a);
for(i=0;i<10;i++)
{
printf("%d",a[i]);
printf("\n");
}
}
你的错误有点多,px(10)该改成px(a),还有for语句少打了括号,还有for语句里面的i和p的初值都应该为0,而你的是1,编程序的时候要注意代码的格式 排版 不然很难找错的 就像你的for语句少打了括号一样 自己写完了都不容易看出来
还有你那px函数里面的变量声明了太多,没必要 代码看起来要简单 可读性才强
我帮你把没必要的删了 看起来更舒服
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-04
px(10)
改为 px(a)
相似回答