我這代碼是不是太繁冗了? 80多行。
#include <stdio.h>
int Sort(int arr[])? ?//成績降序
{
? ? int i,j ;
? ? printf("成績降序排序為:\n");
? ? for(i=9;i>=0;i--)
? ? {
? ? ? ? for(j=0;j<i;j++)
? ? ? ? {
? ? ? ? ? ? if(arr[j]>arr[j+1])
? ? ? ? ? ? {
? ? ? ? ? ? ? ? int sum;
? ? ? ? ? ? ? ? sum=arr[j];
? ? ? ? ? ? ? ? arr[j]=arr[j+1];
? ? ? ? ? ? ? ? arr[j+1]=sum;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? printf("%d ",arr[i]);
? ? }
? ? return 0;
}
int Total(int arr[])? //總分
{
? ? int i,j;
? ? static int sum;
? ? for(i=9;i>=0;i--)
? ? sum=arr[i]+sum;
? ? printf("成績的總分是: %d",sum);
? ? return sum;
}
int average(int arr[]) //平均分
{
? ? int i;
? ? static int j;
? ? int sum;
? ? for(i=9;i>=0;i--)
? ? j=arr[i]+j;
? ? sum=j/10;
? ? printf("成績的平均分是: %d",sum);
}
int Max(int arr[]) //最高分
{
? ? int i,j;
? ? int sum=0;
? ? for(i=9;i>=0;i--)
? ? {
? ? ? ? if(arr[i]>sum)
? ? ? ? {
? ? ? ? ? ? sum=arr[i];
? ? ? ? }
? ? }
? ? printf("成績的最高分是: %d",sum);
? ? return 0;
}
int Min(int arr[]) //最低分
{
? ? int i,j;
? ? int sum;
? ? sum=arr[1];
? ? for(i=9;i>=0;i--)
? ? {
? ? ? ? if(arr[i]<sum)
? ? ? ? {
? ? ? ? ? ? sum=arr[i];
? ? ? ? }
? ? }
? ? printf("成績的最低分是: %d",sum);
? ? return 0;
}
int main()
{
? ? int score[]={67,98,75,63,82,79,81,91,66,84};
? ? Sort(score);
? ? printf("\n");
? ? Total(score);
? ? printf("\n");
? ? average(score);
? ? printf("\n");
? ? Max(score);
? ? printf("\n");
? ? Min(score);
? ? printf("\n");
? ? return 0;
}
2020-11-19
#include?<stdio.h>
//我的稍微合并了下54行
//總分
int?Total(int?score[])
{
????int?total;
????for(int?i?=?0;?i?<?10;?i++)
????{
????????total?+=?score[i];
????}
????return?total;
}
//降序排序
void?Sort(int?score[])
{
????int?temp;
????for?(int?i=9;i>=0;i--)
????{
????????for?(int?j=0;j<i;j++)
????????{
????????????if?(score[j]<score[j+1])
????????????{
????????????????temp?=?score[j];
????????????????score[j]?=?score[j+1];
????????????????score[j+1]?=?temp;
????????????}
????????}
????}
}
int?main()
{
????int?score[]={67,98,75,63,82,79,81,91,66,84};
????//降序排列
????Sort(score);
????printf("降序排列\n");
????for?(int?i=0;i<10;i++)
????{
????????if?(i!=9)
????????{
????????????printf("%d,?",score[i]);
????????}
????????else
????????{
????????????printf("%d\n",score[i]);
????????}
????}
????int?max?=?score[0];
????int?min?=?score[9];
????int?total?=?Total(score);
????float?avg?=?total/10;
????printf("最高分:%d\n最低分:%d\n總分:%d\n平均分:%.2f\n",max,min,total,avg);
????return?0;
}
2020-11-25
你可以先降序排序之后再求最大最小值