c语言编写程序,从键盘输入6名学生5门功课成绩,分别统计出每个学生的平均成绩

供稿:hz-xin.com     日期:2025-01-13
编写程序,从键盘输入6名同学的5门成绩,分别统计出每个学生的平均成绩。 用C语言编写

# include
# define M 6
# define N 5
float average(float *p,int n) /*求平均分的函数*/
{ float sum=0.;
int i;
for(i=0;i<n;i++)
sum=sum+*(p+i);
return sum/n;
}
void main()
{ float score[M][N],ave[M]; /*定义数组score[6][5]用来放6个学生5门课成绩*/
int i,j;
for(i=0;i<M;i++)
{printf("输入第%d个学生的%d门课的成绩:",i+1,N);
for(j=0;j<N;j++)
scanf("%f",&score[i][j]);
printf("
");
}
for(i=0;i<M;i++)
{ave[i]=average(score[i],N);
printf("第%d个学生的平均分为:%.2f
",i+1,ave[i]);
}
}

#include

int main()
{
int sBuf[128+1];
double iSum[6+1];
int i = 0;
int j = 0;
int k = 0;
int sum = 0;
for (i=0; i<6; i++)
{
sum = 0;
printf("输入第%d位同学的5门成绩:
",i+1);
for (j=0; j<5; j++)
{
scanf("%d",&sBuf[i*5+j]);
}
for (k=0; k<5; k++)
{
sum += sBuf[i*5+k];
printf("sum[%d] && sBuf[%d]
",sum,sBuf[i*5+k]);
}
iSum[i] = sum;
}
i=0;
j=0;
for (i=0; i<6; i++)
{
printf("第%d位同学的平均成绩为:%.2f
",i+1,iSum[i]/5);
}
}

一、问题分析

需要保存6名学生5门功课的成绩,需要设计一个6行5列大小的二维数组scores[6][5]来存储30个成绩数据。保存6名学生的平均成绩,需要设计一个6列大小的一维数组来avgs[6]存储平均成绩。

为使程序具有更好的通用性,使用宏定义定义学生人数M和课程门数N。

计算每个学生的平均成绩时,累加该行所有列的成绩数据,并除以列大小即为该学生的平均成绩。


二、参考程序

#include <stdio.h>

#define M 6 /* 学生人数 */
#define N 5 /* 课程门数 */

/* 输入row个学生col门课程的成绩 */
void input(double scores[][N], int row, int col);

/* 计算row个学生的平均成绩并保存在avgs数组中 */
void average(double scores[][N], int row, int col, double avgs[]);

/* 输出所有学生的平均成绩 */
void output(double avgs[], int size);

void main()
{
double scores[M][N];
double avgs[M];

input(scores, M, N);

average(scores, M, N, avgs);

output(avgs, M);
}

/* 输入row个学生col门课程的成绩 */
void input(double scores[][N], int row, int col)
{
int i, j;

printf("请输入%d个学生%d门课程的成绩,每个学生成绩在一行,以空格分隔成绩:
", row, col);
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
{
scanf("%lf", &scores[i][j]);
}
}
}

/* 计算row个学生的平均成绩并保存在avgs数组中 */
void average(double scores[][N], int row, int col, double avgs[])
{
int i, j;

for(i=0; i<row; i++)
{
avgs[i] = 0.0;
for(j=0; j<col; j++)
{
avgs[i] += scores[i][j];
}
avgs[i] /= col;
}
}

/* 输出所有学生的平均成绩 */
void output(double avgs[], int size)
{
int i;

printf("%6s%10s
", "序号", "平均成绩");
printf("----------------------------
");
for(i=0; i<size; i++)
{
printf("%6d%10.2lf
", i+1, avgs[i]);
}
}


三、运行测试



#include<stdio.h>
#define N 5//这里设置班级人数
void main()
{
int i,sum=0,high=0,score;
float average;
printf("input everyone's score.\n");
for(i=0;i<N;i++)
{
scanf("%d",&score);
sum+=score;
if(score>high) high=score;
}
average=(float)sum/N;
printf("average=%f\n",average);
printf("highest=%d\n",high);
}
这个代码很容易懂。你拿去改下。。我就不给你调试了。这个是实现某班平均成绩然后输出平均成绩最高成绩的,如果采纳我的。我可以给你编一个很通用的

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])//这里如果编译错误的话改成int main()就可以了
{
int i,c,s=0,temp;
for(i=0;i<=5;i++)
{
for(c=1;c<=5;c++)
{
printf("请输入第%d位学生的第%d门功课成绩:1",i+1,c);
scanf("%d",&temp);
s+=temp;
}
printf("平均成绩:%.2f\n",s/5.0);
s=0;
}
system("PAUSE");
return 0;
}
//dev-c下编译通过

#include <stdio.h>
typedef struct Student {
name char[20];
float math;
float literate;
float physics;
float chemical;
float english;
float average;
} STU;

int main() {
STU s[6];
int i;
for (i=0;i<6;i++) {
printf("%s:","请输入学生姓名");
scanf("%s", s[i].name);

printf("%s:","请输入数学成绩");
scanf("%f", &s[i].math);

printf("%s:","请输入语文成绩");
scanf("%f", &s[i].literate);

printf("%s:","请输入物理成绩");
scanf("%f", &s[i].physics);

printf("%s:","请输入化学成绩");
scanf("%f", &s[i].chemical);

printf("%s:","请输入英文成绩");
scanf("%f", &s[i].english);

s[i].average = (s[i].math+s[i].literate+s[i].physical+s[i].chemical+s[i].english)/6.0;
}

printf("\n======================================\n");

printf("姓名\t数学\t语文\t物理\t化学\t\英语\t平均成绩\n");
for (i=0;i<6;i++) {
printf("%s\t%3.2f\t%3.2f\t%3.2f\t%3.2f\t%3.2f\t%3.2f\n", s[i].name, s[i].math, s[i].literate, s[i].physics, s[i].chemical, s[i].english, s[i].average);

}
return 0;
}

#include <stdio.h>
int main()
{
int i , j , tmp , tot = 0;
for(i = 0 ; i < 6 ; i++)
{
tot = 0;
for(j = 0 ; j < 5 ; j++)
{
scanf("%d",&tmp);
tot += tmp;
}
printf("%d\n",tot/5);
}
return 0;
}

学过c语言的帮忙编程一下
|| (inputchoice>5))printf("输入错误,请重新输入。\\n");if(inputchoice==1)input();if(inputchoice==2)if(whetherinput==true)output();else printf("请先输入学生信息\\n");if(inputchoice==5)exit(0);} return 0;} 这是实现1和2功能的程序:下面是VS2005下的截图 ...

急求一C语言程序:从键盘输入6个整数进行降序排列并输出平均值_百度知 ...
include"stdio.h"include"stdlib.h"main(){int i,j,a[7],sum=0,temp;printf("请输入6个数:\\n");for(i=1;i<=6;i++){scanf("%d",&a[i]);sum=sum+a[i];} for(i=1;i<6;i++)for(j=i;j<=6;j++)if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;} printf...

用C语言从键盘任意输入5个学生的姓名,编程找出并输出按字典顺序排在最...
include<stdio.h>#include<string.h>int main(){ char a[5][1000],tem[1000]; int i,k; for(i=0;i<5;i++){ scanf("%s",a[i]); } for(i=1;i<5;i++){ if(strcmp(a[0],a[i])==1){ strcpy(a[0],a[i]); } } printf("%s\\n",...

从键盘任意输入5个学生姓名,编程找出按字典顺序排在最前面的学生姓名用...
\/\/VC++ 6.0下调试通过 include <iostream> using namespace std;static char names[5][20];void main(){ cout<<"请输入西文姓名!"<<endl;for (int i=0; i<5; i++){ cout<<"第"<<i+1<<"位同学姓名:"<<endl;cin>>names[i];} char* p=NULL;p= names[0];for (i=0; i...

用java通过键盘输入若干个学生信息,直到输入井号结束
while(true){ \/\/...输入} 需求3:井号结束:说明跳出死循环的条件 while(true){ \/\/...输入 if(输入#){ 跳出循环 }} 其次: 用面向对象的方法进行思考和架构 java是一门面向对象的语言, 所以写代码,也需要用面向对象的思考方式,学生是一个对象, 应该写一个类 ,拥有姓名name...

C语言编程:编写程序实现,5个学生,每个学生的数据包括学号、姓名、3门课...
s,y,j,i;char x;for (i=0;i<5;i++){ cout<<"输入 学号:";cin>>zc;cout<<"输入 姓名:";cin>>x;cout<<"输入 数学成绩:";cin>>s;cout<<"输入 英语成绩:";cin>>y;cout<<"输入计算机成绩:";cin>>j;stu[i].set_stu_inf(zc,x,s,y,j);stu[i].print();} } ...

编写一个c语言程序,实现录入学生学号和姓名信息的功能
include<stdio.h> include<stdlib.h> intmain(void){ chars[10];\/\/姓名 intnum;\/\/学号 printf("请输入姓名:\\n");gets(s);printf("请输学号:\\n");scanf("%d",&num);printf("姓名是:%s\\n学号是:%d\\n",s,num);system("pause");return0;} ...

C语言编程。1)从键盘上输入6个整数放入数组a[6]中(2)并将各元素和平均...
include<iostream> include<fstream> include<string> include<vector> using namespace std;int main(){ int a[6];int i=0,sum=0;int average;cout<<"输入你想输入的六个数"<<endl;while(i<6){ cin>>a[i];sum=sum+a[i];i++;} average=sum\/6;ofstream out("c:\\\\bbb.txt");if(...

C语言题目 输入五个同学的成绩,用循环程序求平均成绩,输出最高成绩...
您好,很高兴为您作答。通过如下C语言程序,可以实现从键盘输入五个同学的成绩,用循环程序求平均成绩,输出最高成绩:include <stdio.h> int main() { int i, score, sum = 0, max = 0;float avg;for (i = 1; i <= 5; i++) { printf("请输入第%d个同学的成绩:", i);scanf("...

C语言从键盘输入5个学生成绩并求出平均数最高分最低分
\/*只要输出最大最小,平均数吗?那还用什么数组呢*\/ include<stdio.h> include<stdlib.h> define N 5 \/\/输入的数字的个数,要增加个数和话,直接改这里就行了啊 main(){ int sum,max,min,num,i;\/\/相应的和值,最大,最小,输入的数,控制输入的个数 float avrg;\/\/平均数 printf("Please ...