#include <stdio.h>
int all(int score[])
{
int i;
int sum=0;
for(i=0;i<10;i++)
{
sum+=score[i];
}
return sum;
}
int most(int score)
{
int i,j;
for(i=8;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(score[j]>score[j+1])
{
int temp;
temp=score[j+1];
score[j+1]=score[j];
score[j]=temp;
}
}
}
printf("排列之后顺序为\n");
for(i=0;i<10;i++)
{
if(i!=9)
printf("%d,",arr[i]);
else
printf("%d",arr[i]);
}
printf("最低分为%d",arr[1]);
printf("最高分为%d",arr[9]);
}
int main()
{
int score[N]={67,98,75,63,82,79,81,91,66,84};
most();
printf("考试总分为%d,平均分为%d",(all),(all)/10);
return 0;
}
你的程序本身有几个问题,首先,你在定义函数的时候score后面没有中括号[],这样后面 你打score[i]他会提示找不到指针(编译报错说的,我也不懂);其次,你在定义得到most函数中用了未定义的arr[];再次,你most函数中第一个for循环条件写错“;”写成“,”;还有你输出总分和平均分的时候用的方式不对,你用(all)他会输出all的ASCLL码(我也不清楚,反正输出一串不相干的数,应该是这样),所以我用了定义值得方式;哦还有,你不等号打错了;这些是程序本身的问题,还有就是输出问题,降序排列score[j]<score[j+1]才执行换位,最小的是score[9],最大的是score[0],嗯,应该就这些吧=-=。
这是我做这道题时敲的代码。
#include <stdio.h> int i,j; int sum,num; int main() { int score[10]={67,98,75,63,82,79,81,91,66,84}; for(i=9;i>=0;i--) { for(j=0;j<=i;j++) { if(score[j]<score[j+1]) { int tamp; tamp=score[j]; score[j]=score[j+1]; score[j+1]=tamp; } } } printf("成绩降序排序为\n"); for(i=0;i<10;i++) { printf("%d ",score[i]); sum+=score[i]; } num=sum/10; printf("\n成绩总分为\n%d",sum); printf("\n成绩平均分为\n%d",num); printf("\n成绩最高分和最低分分别为\n%d,%d",score[0],score[9]); return 0; }
我也是才自学入门的,一起努力吧
你看看你复制粘贴的时候出了什么问题吧,还有我把sum和num定义在函数外表示他们俩是全局变量,如果定义在定义的函数里,输出的时候它会显示找不到sum和num的值
我用慕课网和vs2013都没问题啊
#include <stdio.h> int num; int sum = 0; int all(int score[]) { int i; for (i = 0; i < 10; i++) { sum += score[i]; } num = sum / 10; return sum; } int most(int score[]) { int i, j; for (i = 9;i>=0; i--) { for (j = 0; j <= i; j++) { if (score[j] <score[j+1]) { int temp; temp = score[j+1]; score[j+1] = score[j]; score[j] = temp; } } } printf("排列之后顺序为\n"); for (i = 0; i < 10; i++) { if (i!=9) printf("%d,", score[i]); else printf("%d", score[i]); } printf("最低分为%d", score[9]); printf("最高分为%d", score[0]); } int main() { int score[10]={67,98,75,63,82,79,81,91,66,84}; most(score); all(score); printf("考试总分为%d,平均分为%d",sum,num); return 0; }