c语言用数组编写,输入十个学生成绩求出平均分,并统计高于平均分的人数

如题所述

#include "stdio.h"
int main()
{
int a[10],i,sum=0,count=0;
double ave;
printf("请输入十个学生的成绩\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
sum+=a[i];
ave=(double)sum/10;
for(i=0;i<10;i++)
if(a[i]>ave)
count++;
printf("平均分:%f\n高于平均分: %d\n",ave,count);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-08
int main(int argc, char* argv[])
{
float score[10] = {0.0f};

for (int i = 0; i < 10; i++)
{
printf("input %d student's score:", i+1);
scanf("%f", &score[i]);
}

float sum = 0.0f;
for (int j = 0; j < 10; j++)
{
sum += score[j];
}

float aver = sum / 10.0f;
int count = 0;

for (int k = 0; k < 10; k++)
{
if (score[k] >= aver)
{
count++;
}
}

printf("Average score is %f\n", aver);
printf("%d scores higher than average score!\n", count);

return 0;
}
第2个回答  2011-12-08
一种比较笨的方法
#include<stdio.h>
int main()
{
float a[10],i,sum=0,average; /*输入十个学生成绩求出平均分,并统计高于平均分的人数*/
int b;
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
}
for(i=0;i<10;i++)
{
sum=sum+a[i];
}
averge=sum/10; /*平均分*/
b=0;
for(i=0;i<10;i++) /*高于平均分的人数*/
{
if(a[i]>average)
++b;
}
printf("average=%f\n",average);
printf("%d",b);
return 0;
}
第3个回答  2011-12-08
int Sort_by_rank(struct student stud[],int n)
{ int i,j;
long total=0;
struct student t;
for(i=0;i<n;i++)
{stud[i].sum=stud[i].sc.chinese+stud[i].sc.math+stud[i].sc.english+stud[i].sc.computer; } /*计算各个学生总分*/
for(i=0;i<n;i++)
{ stud[i].rank=i+1; /*写入个各学生名次*/
total+=stud[i].sum; /*计算全部学生总成绩*/
}
return total;
}
void Print(struct student stud[])
{ long total;int i;
total=Sort_by_rank(stud,n);
printf(" -----------------------------------------------------------------------------\n");
printf(" 学号 \t姓名 \t性别\t年龄\t语文\t数学\t英语\t计算机\t 名次\n");
for(i=0;i<n;i++){
if(stud[i].sum>=total/n){
printf(GSKZ,stud[i].num,stud[i].name,stud[i].sex,stud[i].age,stud[i].sc.chinese,stud[i].sc.math,stud[i].sc.english,stud[i].sc.computer,stud[i].rank);//GSKZ 为输出格式 为:"%d %s %s%d %d %d %d %d "
system("pause");
}
//调用Print函数即可
第4个回答  2011-12-08
#include <stdio.h>
void main()
{
int i, arr[10];
int sum = 0;
int count = 0;
double avg = 0;
for (i = 0; i != 10; ++i)
{
scanf("%d", &arr[i]);
sum += arr[i];
}
avg = sum / 10.0;
for (i = 0; i != 10; ++i)
{
if (arr[i] > avg)
{
count++;
}
}
printf("平均分:%lf\n", avg);
printf("人数:%d\n", count);
}本回答被提问者和网友采纳
相似回答