c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生人数。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生人数。相关的知识,希望对你有一定的参考价值。
# include <stdio.h>void main()
int fun(int score[],int m,int below[]);
int score[100],m,below[100];
int i=0;
char c;
printf(" 请输入学生成绩,回车后结束:\n");
do
scanf("%d",&score[i]);
i++;
c=getchar();
if(c=='\n')
break;
while(1);
m=fun(score,i,below);
printf("高于平均分的人数有%d人\n", m);
for(i=0;i<m;i++)
printf("%d\t",below[i]);
getchar();
int fun(int score[],int m,int below[])
int i,k=0;
int aver=0;
for(i=0;i<m;i++)
aver+=score[i];
printf("总分:%d",aver);
printf(" \n");
aver/=m;
printf("平均分:%d\n",aver);
for(i=0;i<m;i++)
if(score[i]>aver)
below[k]=score[i];
k++;
return k;
参考技术A #include <stdio.h>
#include <malloc.h>
int max,min,k=0; float aver=0;
void f(int *p1,int *p0,int n)
int i;p1=p0; float s=0;
for(i=0;i<n;i++) s+=*p1++;
aver=s/n;
max=0;min=100;p1=p0;
for(i=0;i<n;i++) if(*p1>max) max=*p1;p1++; p1=p0;
for(i=0;i<n;i++) if(*p1<min) min=*p1;p1++; p1=p0;
for(i=0;i<n;i++) if(*p1>aver) k++ ;p1++; p1=p0;
void main()
int *p,n,i;
printf("请输入班级总人数:\n") ;
scanf("%d",&n);
p=(int*)malloc(n*sizeof(int));
if(!p) return;
int *p0;p0=p;
printf("请在此输入各学生成绩:\n");
for(i=0;i<n;i++) scanf("%d",p++);
f(p,p0,n);
printf("平均分数:%3f\n",aver);
printf("最高分:%3d\n",max);
printf("最低分:%3d\n",min);
printf("超过平均分的人数:%3d\n",k);
free(p);
参考技术B #include <stdio.h>
#define N 10
int main()
int i,n = 0,s[N];
float av = 0.0;
for(i = 0; i < N; ++i)
printf("Input No.%d score:",i + 1);
scanf("%d",&s[i]);
av += &s[i];
av /= N;
for(i = 0; i < N; ++i)
if( s[i] > av ) ++n;
printf("av score: %f\\n",av);
printf("> av score num: %d\\n",n);
return 0;
参考技术C #include<stdio.h>
int main()
int i,num=0,s[11]=0;
for(i=1;i<=10;i++)
scanf("%d",&s[i]);
s[0]+=s[i];
s[0]=s[0]/10;
for(i=1;i<=10;i++)
if(s[i]>s[0]) num++;
printf("%d\n",num);
return 0;
C语言试题练习:输入5个学生5门课的成绩,分别用函数求:1.每个学生平均分;2.每门课的平均分;3.找出所有分数中最高分
C语言试题练习:输入5个学生5门课的成绩,分别用函数求:①每个学生平均分;②每门课的平均分;③找出所有分数中最高分
//每个学生平均分;
void Average_Students(int a[5][5])
{
int i, j;
for (i = 0; i < 5; i++)
{
//第i+1个同学
double c;
int b = 0;
for (j = 0; j < 5; j++)
{//第i+1个同学的成绩平均分
b += a[i][j];
c = b / 5.00;
}
printf("第%d个同学的成绩平均分%0.2f\\n", i + 1, c);
}
}
//每门课的平均分;
void Average_Class(int a[5][5])
{
int i, j;
for (j = 0; j < 5; j++) {//这里a【i】【j】,j循环放在最外面
double c;
int b = 0;
for (i = 0; i < 5; i++)
{
b += a[i][j];
c = b / 5;
//printf("%d\\t", a[i][j]); 这里可以看下输出的分数列的数据
}
printf("第%d门课的平均分分别为%0.2f\\n", j + 1, c);
}
}
//所有分数中最高分;
void Max_Point(int a[5][5])
{
int maxh[5];
int i, j, max;
for (i = 0, j = 0; i < 5; i++)
{
maxh[i] = a[i][j];//假设每行第一个是最大值
for (j = 0; j < 5 - 1; j++)
{ //此行元素分别与之比较,较大值为maxh[i]
if (a[i][j + 1] >= maxh[i])
{
maxh[i] = a[i][j + 1];
}
}
}
for (i = 0; i < 5 - 1; i++)
{
max = maxh[i];//假设第一列的数是最大值
//整列元素分别与之比较,较大值为max
if (maxh[i + 1] >= max)
{
max = maxh[i + 1];
}
}
printf("所有分数中最高分max=%d\\n", max);
}
int main()
{
int a[5][5];
int i, j;
for (i = 0; i < 5; i++)
{
printf("第%d个同学的成绩:", i + 1);
for (j = 0; j < 5; j++)
{
scanf_s("%d", &a[i][j]);
}
}//**输入时数字之间用空格分隔**
printf("\\n");
Average_Students(a); printf("\\n");
Average_Class(a); printf("\\n");
Max_Point(a); printf("\\n");//输出空格可去掉,这样只是为了输出结果美观
return 0;
}
输出结果
第1个同学的成绩:56 54 81 62 65
第2个同学的成绩:85 96 42 68 78
第3个同学的成绩:96 84 35 65 45
第4个同学的成绩:54 31 41 68 48
第5个同学的成绩:21 95 87 65 32
第1个同学的成绩平均分63.60
第2个同学的成绩平均分73.80
第3个同学的成绩平均分65.00
第4个同学的成绩平均分48.40
第5个同学的成绩平均分60.00
第1门课的平均分分别为62.00
第2门课的平均分分别为72.00
第3门课的平均分分别为57.00
第4门课的平均分分别为65.00
第5门课的平均分分别为53.00
所有分数中最高分max=95
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
参考链接 https://blog.csdn.net/weixin_45391986/article/details/105919562
以上是关于c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生人数。的主要内容,如果未能解决你的问题,请参考以下文章