_Gin
2015-05-06 20:30
#include <stdio.h>
int main()
{
int score[10]={67,98,75,63,82,79,81,91,66,84};
//总分
int sum=0;
int i;
for(i=0;i<10;i++)
{
sum=sum+score[i];
}
printf("总分%d\n\n",sum);
//最高分
int max=0;
int j;
for(j=0;j<9;j++)
{
if(max<score[j])
{max=score[j];}
}
printf("最高分%d\n\n",max);
//最低分
int min=200;
int q;
for(q=0;q<9;q++)
{
if(min>score[q])
{min=score[q];}
}
printf("最低分%d\n\n",min);
//平均分
double avg=sum/10;
printf("平均分%f\n\n",avg);
//考试成绩降序排列
int temp;
int m,n;
printf("#####考试降序排列#####\n\n");
for(m=0;m<9;m++)
if(score[m]<score[m+1])
{
temp=score[m];
score[m]=score[m+1];
score[m+1]=temp;
}
for(n=0;n<10;n++)
printf("%d ",score[n]);
return 0;
}
--------------------------------------------------
最后降序排列这里为什么返回的值是未排序的?是全局变量什么的原因吗?怎么修改?
其实这个结合指针跟好的跟你解释,但是现在没学到指针。
for(m=0;m<9;m++)
if(score[m]<score[m+1])
{
temp=score[m];
score[m]=score[m+1];
score[m+1]=temp;
}
你把这段代码外面再加上一个循环,就是
for(m=10-2;m>=0;m--) { for(n=0;n<=m;n++) { if(score[n]<score[n+1]) { int temp; temp = score[n]; score[n] = score[n+1]; score[n+1]=temp; } } }
这样写就行了
C语言入门
926023 学习 · 20793 问题
相似问题