中易网

输入10个学生的成绩,分别用函数实现:

答案:1  悬赏:0  
解决时间 2021-01-10 23:23
  • 提问者网友:听门外雪花风
  • 2021-01-10 16:57
输入10个学生的成绩,分别用函数实现:
最佳答案
  • 二级知识专家网友:轮獄道
  • 2021-01-10 17:18
#include
int main()
{
int a[10],i;
int aver(int a[]);
void sort(int a[]);
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("平均成绩:%d\n",aver(a));
sort(a);
printf("从大到小排序:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
return 0;
}

int aver(int a[])
{
int i,b=0;
for(i=0;i<10;i++)
b+=a[i];
return b/10;
}

void sort(int a[])
{
int i,j,k,temp;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(a[j]>a[k])
k=j;
if(i!=k)
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
}

不懂可以追问追问谢谢你哟,如果成绩是小数的呢?追答恩,一些变量要改成float,这个程序保留了两位小数
#include
int main()
{
float a[10];
int i;
float aver(float a[]);
void sort(float a[]);
printf("请输入十个数:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
printf("平均成绩:%5.2f\n",aver(a));
sort(a);
printf("从大到小排序:\n");
for(i=0;i<10;i++)
printf("%5.2f\n",a[i]);
return 0;
}

float aver(float a[])
{
int i;
float b=0;
for(i=0;i<10;i++)
b+=a[i];
return b/10;
}

void sort(float a[])
{
int i,j,k;
float temp;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(a[j]>a[k])
k=j;
if(i!=k)
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
}

不懂可以追问
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息