C语言:输入10个学生的单科成绩,求出其中的最高分、最低分以及超过平均分的人数。怎么编程?我学的是C++,

如题所述

#include "iostream.h"

void main()

{

float score[10],sum=0,avg,max=0,min,j,k;

int count = 0;

cout << "请输入学生成绩" <<endl;

for(int i = 0;i < 10;i++)

{

cin >> score[i];  //依次输入学生成绩

sum += score[i];  //计算总分 

if(i == 0)

min = score[i]; //  初始化min的值,假设第一个输入的成绩就是最低分

else if(score[i] <= min)

min = score[i];

if(score[i] >= max)

max = score[i];

}

avg = sum / 10;//平均分 = 总分/总人数

for(int a = 0;a < 10;a++)

if(score[a] >= avg)

count++; //计算分数大于平均分的人数

cout << "最高分:" << max <<endl;

cout << "最低分:" << min <<endl;

cout << "平均成绩:" << avg <<endl;

cout << "超过平均分的人数:" << count <<endl;

};

运行结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-25
#include <stdio.h>
float Max,Min;
float average(float array[],int n){
int i;
Max=Min=array[0]; //这里应该先让Max=Min为第一个数,否则,数组中的数有可能都不大于MAX或都不小于MIN
float aver,sum=0;
for (i=1; i<n; i++)
{
if(array[i]>Max)Max=array[i];
else if(array[i]<Min)Min=array[i];
sum=sum+array[i];
}
aver=sum/n;
return aver;
}本回答被提问者采纳
第2个回答  2012-04-25
C语言:
#include<stdio.h>

int main()
{
float min=5000,max=-1,avg=0,array[10];
int count=0,i;
for(i=0;i<10;++i)
{
scanf("%f",&array[i]);
avg+=array[i];
if(min>array[i]) min=array[i];
if(max<array[i]) max=array[i];
}
avg/=10;
for(i=0;i<10;++i)
if(array[i]>avg) ++count;
printf("最高分为%.2f,最低分为 %.2f,超过平均分的人数为 %d\n",max,min,count);

return 0;
}
第3个回答  2012-04-25
#include<iostream.h>

int main()
{
float min=5000,max=-1,avg=0,array[10];
int count=0,i;
for(i=0;i<10;++i)
{
cin>>array[i];
avg+=array[i];
if(min>array[i]) min=array[i];
if(max<array[i]) max=array[i];
}
avg/=10;
for(i=0;i<10;++i)
if(array[i]>avg) ++count;
cout<<最高分为%.2f,最低分为 %.2f,超过平均分的人数为 %d\n"<<max<<min<<count);

return 0;
}
相似回答