我人晕了
2019-08-11 23:18
为什么这个代码的运行结果是降序排列:10个63,
试试把倒数第十三行的score[j]改成score[i]
score[j]对应的只有一个值
#include <stdio.h>
int sum(int score[10])
{
int i;
int j=0;
for(i=0;i<10;i++)
{
j+=score[i];
}
return j;
}
int max(int score[10])
{
int i,j;
j=score[0];
for(i=0;i<10;i++)
{
if(score[i]>j)
{
j=score[i];
}
}
return j;
}
int min(int score[10])
{
int i,j;
j=score[0];
for(i=0;i<10;i++)
{
if(score[i]<j)
{
j=score[i];
}
}
return j;
}
float average(int score[10])
{
int i;
int j=0.0;
for(i=0;i<10;i++)
{
j+=score[i];
}
return (j+0.0)/10;
}
void gradeDown()
{
printf("降序排列为:");
int score[10]={67,98,75,63,82,79,81,91,66,84};
int i,j,k;
for(i=9;i>=0;i--)
{
for(j=0;j<i;j++)
{
if(score[j]<score[j+1])
{
k=score[j+1];
score[j+1]=score[j];
score[j]=k;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",score[j]);
}
}
int main()
{
int score[10]={67,98,75,63,82,79,81,91,66,84};
printf("总分:%d\n",sum(score));
printf("最高分:%d\n",max(score));
printf("最低分:%d\n",min(score));
printf("平均分:%.1f\n",average(score));
gradeDown();
return 0;
}
现在改成这样又全是98了
你把代码贴出来,我在你代码基础上改。
C语言入门
926025 学习 · 20793 问题
相似问题