#include <stdio.h>
int totalScore(int score[], int N)
{
int i;
int sum = 0;
for (i = 0; i < N; i++)
{
sum += score[i];
}
return sum;
}
int maxScore(int score[], int N)
{
int j;
int max = score[0];
for (j = 0; j < N - 1; j++)
{
if (score[j + 1] > max)
max = score[j + 1];
}
return max;
}
int minScore(int score[], int N)
{
int k;
int min = score[0];
for (k = 0; k < N - 1; k++)
{
if (score[k + 1] < min)
min = score[k + 1];
}
return min;
}
int averageScore(int score[], int N)
{
int Sum = *totalScore;
int average = Sum / N;
return average;
}
int descendingScore(int score[], int N)
{
int m, temp;
for (m = 0; m < N - 1; m++)
{
if (score[m + 1] < score[m])
{
temp = score[m];
score[m] = score[m + 1];
score[m + 1] = temp;
printf("%d\n", score[m]);
}
else
{
printf("%d\n",score[m]);
}
}
return 0;
}
int main()
{
int score[10] = { 67,98,75,63,82,79,81,91,66,84 };
totalScore(score, 10);
maxScore(score, 10);
minScore(score, 10);
averageScore(score, 10);
descendingScore(score, 10);
getchar();
return 0;
}
写的代码过于散;
不需要定义太多函数,定义一个函数就够了,
在定义的内部函数里面求出最大值,最小值,降序与,
定义整个数组作为参数处理(在数组第二章以写有),
在定义的函数里面我们定义整型的最大值、最小值、均值、sum的变量名,
先考虑遍历降序排序,然后我们可以求出最大值在第一位,最小值在最后一位,
而总值可以用for循环遍历加到之前定义的sum变量名里面,
而均值我们可以用总值/10,都可以在定义的内部函数里输出,在主函数中我们只调用一维数组到自定义的函数里,自定义函数中直接输出就好
总结:写代码前先考虑好,代码的可读性,灵活性,可修改性
代码如下:
#include <stdio.h>
int L(int s[]) //处理整个数组
{
int max=0;
int min=0;
int sum=0;
int v=0;
int i,j,t;
for(i=0;i<10;i++)
{
t=1; //此不做赘述
for(j=0;j<10-1-i;j++)
{
if(s[j]<s[j+1]) //降序 < 从大到小
{
s[j]+=s[j+1];
s[j+1]=s[j]-s[j+1]; //比较调换位置
s[j]-=s[j+1];
t=0; //此不做赘述
}
}
if(t)break;//此不做赘述
}
for(i=0;i<10;i++)
{
sum+=s[i]; //循环求出总值
}
printf("sum=%d\n",sum);
max=s[0];
min=s[9];
v=sum/10;
printf("max=%d\n",max);
printf("min=%d\n",min);
printf("v=%d\n",v);
for(i=0;i<10;i++)
{
printf("%d ",s[i]);
}
}
int main()
{
int score[]={67,98,75,63,82,79,81,91,66,84};
L(score); //调用函数
return 0;
}