寒月0
2015-12-07 22:28
#include <stdio.h>
int sum(int score[],int N)
{
int sum1=0;
int i;
for(i=0;i<N;i++)
{
sum1+=score[i];
}
return sum1;
}
int getmax(int score[],int N)
{
int max=score[0];
int i;
for(i=1;i<N;i++)
{
if(score[i]>max)
max=score[i];
}
return max;
}
int getmin(int score[],int N)
{
int min=score[0];
int i;
for(i=1;i<N;i++)
{
if(score[i]<min)
min=score[i];
}
return min;
}
float getaver(int sum,int N)
{
float sum2=(float)(sum);
float aver=sum2/N;
return aver;
}
int paixu(int score[],int N)
{
int i,j,k;
for(i=N-2;i>=0;i--)
{
for(j=0;j<=i;j++)
{
if(score[j]<score[j+1])
{
int temp;
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
for(k=0;i<N;k++)
{
printf("%d\n",score[k]);
}
return 0;
}
int main()
{
int score[]={67,98,75,63,82,79,81,91,66,84};
int N=10;
int sum1=sum(score,N);
int max=getmax(score,N);
int min=getmin(score,N);
int aver=getaver(sum1,N);
printf("数组的和是%d\n",sum1);
printf("数组的最大值是%d\n",max);
printf("数组的最小值是%d\n",min);
printf("数组的平均值是%d\n",aver);
int paixu(score,N);
return 0;
}
运行结果:
数组的和是786
数组的最大值是98
数组的最小值是63
数组的平均值是78
你这个降序的逻辑是没有错的,但是后面的循环部分写的有点小问题,我修改了一下
void sort(int score[], int N)//你这个函数也不用返回值就设置成void就好了,sort就是排序的意思
{
int i, j, k;
for(i = N-1; i > 0; i--)
{
for(j = 0 ; j <= i; j++)
{
if(score[j] < score[j+1])
{
int temp;
temp = score[j];
score[j] = score[j+1];
score[j+1] = temp;
}
}
}
for(k = 0; k < N; k++)
{
printf("%d\n", score[k]);
}
}
还有一点就是注意一点代码规范,代码里加入适当的空格看起来会更舒服一些
还有你的命名规范,如getmax应该写成getMax,最好别用拼音命名可以用sort。
在main函数中调用的时候直接sort(score, N);
float sum2=(float)(sum); 麻烦帮我解释一下 求平均数时为什么要这么写?
C语言入门
928197 学习 · 21544 问题
相似问题