|
|
发表于 2013-6-5 22:23:56
|
显示全部楼层
回帖奖励 +2 鱼币
建议多看看数组相关的知识- #include<stdio.h>
- #define N 30
- int input_score(int a[]) //定义学生成绩输入的函数,函数的返回值为成绩数
- {
- int i;
- for(i=0;i<N;i++)
- {
- scanf("%d",&a[i]); //输入成绩是这样输入的
- if(a[i]==-1) //估计你原本意思是输入的
- //成绩为-1的时候结束输入
- break;
- }
- return i;
- }
- void px(int a[],int n) //定义学生成绩排序的函数(降序)
- {
- int i,j,temp;
- for(i=0;i<(n-1);i++)
- for(j=i+1;j<n;j++)
- {
- if(a[j]>a[i]){ //这个条件句把比a[i]大的
- //数与a[i]交换,每经过一次循
- //环后最大的数就放在了最前面
- temp=a[i]; //你程序里面都是这个错误
- a[i]=a[j];
- a[j]=temp;
- }
- }
- }
- void output_score(int a[],int n)//定义学生成绩输出函数
- {
- int i;
- for(i=0;i<n;i++)
- printf("%2.3d\t",a[i]); //这里也有错
- }
- void main() //主函数
- {
- int score[N];
- int n;
- n = input_score(score); // 这个地方得吧成绩的个数记录下来
- px(score,n);
- output_score(score,n);
- }
复制代码 |
|