输入五个学生的三门课程成绩
『壹』 用C语言编写程序:有五个学生的三门课程的成绩,求每门课程的平均成绩
程序设计思路:首先我们需要定义一个学生的结构体,用于存放学生信息;接着是3个方法,一个输入学生信息的方法,一个是计算学生每门课程平均成绩的,最后一个是输出学生所有信息,包括计算好的平均成绩,具体实现代码如下:
#include<stdio.h>
#include<stdlib.h>#defineARRAY_LEN100 /*数组长度*/
/*定义学生结构体*/
typedefstruct{
intno;/*学号*/
floatscore1;/*成绩1*/
floatscore2;/*成绩2*/
floatscore3;/*成绩3*/
floattotalScore;/*总分*/
floataverageScore;/*平均分*/
}student;
/*输入学生信息*/
voidinputInfo(studentstu[],intstuIndex){
inti;
printf("第%d名学生↓ ",stuIndex+1);
printf("学号:");
scanf("%d",&stu[stuIndex].no);
printf("成绩1:");
scanf("%f",&stu[stuIndex].score1);
printf("成绩2:");
scanf("%f",&stu[stuIndex].score2);
printf("成绩3:");
scanf("%f",&stu[stuIndex].score3);
putchar(' ');
}
/*计算平均成绩*/
voidcalculationScore(studentstu[],intstuIndex){
stu[stuIndex].totalScore=stu[stuIndex].score1+stu[stuIndex].score2+stu[stuIndex].score3;
stu[stuIndex].averageScore=stu[stuIndex].totalScore/3;
}/*输出学生成绩*/voidprintInfo(studentstu[],intstuIndex){
inti;
printf("%d ",stu[stuIndex].no);
printf("%.2f ",stu[stuIndex].score1);
printf("%.2f ",stu[stuIndex].score2);
printf("%.2f ",stu[stuIndex].score3);
printf("%.2f",stu[stuIndex].averageScore);
putchar(' ');
}
intmain(void){
intstuNum=5,i;
studentstu[ARRAY_LEN];
/*输入、计算*/
puts("请输入学生信息:");
putchar(' ');
for(i=0;i<stuNum;i++){
inputInfo(stu,i);
calculationScore(stu,i);
}
putchar(' ');
printf("%d名学生成绩输入完毕!",stuNum);
putchar(' ');
puts("================================================ ");
/*输出*/
puts("学号 成绩1 成绩2 成绩3 平均成绩");
for(i=0;i<stuNum;i++)
printInfo(stu,i);
getch();/*屏幕暂留*/
return0;
}
程序的运行结果:
(1)输入五个学生的三门课程成绩扩展阅读:
具有相同数据类型的数据我们可以用数组来存放,但对于上面的学生信息,包含多种数据类型,所以只能使用结构体来存放。
结构体的定义形式为:
struct 结构体名{
结构体所包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。
结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化。注意大括号后面的分号;不能少,这是一条完整的语句。结构体也是一种数据类型,它由程序员自己定义,可以包含多个其他类型的数据。
像 int、float、char 等是由C语言本身提供的数据类型,不能再进行分拆,我们称之为基本数据类型;而结构体可以包含多个基本类型的数据,也可以包含其他的结构体,我们将它称为复杂数据类型或构造数据类型。
『贰』 编程打印学生数据:有5个学生,每个学生的数据包括学号、姓名、三门课程成绩,从键盘输入5个学生数据,
void main()
{/*二维数组*/
int i,j,a[3][5],b[3];
float temp_all=0,temp_c=0,s=0;
char *c[5]={"张三","王五","李四","赵六","周八"};
char *t[3]={"math","c","foxpro"};
//void change(int a[],int t);
for(i=0;i<5;i++)
{
printf("input %s 's score:",c[i]);
for(j=0;j<3;j++)
{
scanf("%d",&b[j]);
a[j][i] = b[j];
temp_c += b[j];
temp_all += a[j][i];
}
printf("%s 's average:%f \n",c[i],temp_c/3);
temp_c = 0;
}
printf("all_average:%f \n",temp_all/15);
for(j=0;j<3;j++)
{
for(i=0;i<5;i++)
{
s += a[j][i];
}
printf("%s average:%f \n",t[j],s/5);
s = 0;
}
『叁』 有五个学生,每个学生有三门课的成绩,从键盘上输入学生的学号,姓名,三门课成绩,把它们存放到磁盘中
示例:
import java.util.Scanner;
class Test50 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//定义学生类数组,里面存放五个学生的信息
Student[] stus = new Student[5];
System.out.println("请输入5个学生的信息:");
for(int i=0;i<stus.length;i++){
String str = sc.nextLine();
//001 张三 78 88 90输入以空格分隔
//利用String类中的split方法将字符串分割成字符串数组
String[] strs = str.split(" ");//strs[0],strs[1]...
//创建学生对象
Student stu = new Student();
stu.sid = strs[0];
stu.name = strs[1];
//利用Integer.ParseInt()方法,将字符串转换为整型
stu.chineseGrade =Integer.parseInt(strs[2]);
stu.mathGrade = Integer.parseInt(strs[3]);
stu.englishGrade = Integer.parseInt(strs[4]);
stu.averageGrade = (stu.chineseGrade+stu.mathGrade+stu.englishGrade)/3;
//将每次创建的学生对象赋值给学生数组
stus[i] = stu;
}
for(int i=0;i<stus.length;i++){
System.out.println("学号:"+stus[i].sid+",姓名:"+stus[i].name+",语文:"+stus[i].chineseGrade+",数学:"+stus[i].mathGrade+",英语:"+stus[i].englishGrade+",平均成绩:"+stus[i].averageGrade);
}
}
}
//定义一个Student类
class Student{
String sid;
String name;
int chineseGrade;
int mathGrade;
int englishGrade;
int averageGrade;
}
(3)输入五个学生的三门课程成绩扩展阅读
缺点:
1、C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
2、C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。
『肆』 已知某班5名学生的三门课成绩试编写程序,输入这5个学生的三门课成绩a[5][3],输出每门课成绩的
#include <stdio.h>
/*定义结构体*/
struct student
{
int a;
int b;
int c;
float ave;
};
int main()
{
struct student sco[5];
printf("输入5个学生的3们成绩:\n");
for(i=0;i<5;i++)
{
scanf("%d%d%d",sco[i].a,sco[i].b,sco[i].c);
sco[i].ave=(float)(sco[i].a+sco[i].b+sco[i].c)/3;
}
printf("5名学生平均成绩分别为:\n");
for(i=0;i<5;i++)
{
printf("%.2f\n",sco[i].ave);
}
return 0;
}
————————————————
如果以上出现“%”符号,那是为何防止系统误识我把半角符号写成全角符号了,注意改回来。
————————————————
亲爱的LZ,如果我的回答能够帮你解决问题,或是对你有帮助,或是对你今后的发展造成积极的影响,那么请您的回答吧,同时更迫切地希望您能够在的时候帮我打上“能解决”和“原创”,然后把两行的五颗五角星分别点亮,点亮五角星就是点亮你我的希望。 我冲11级了,需要很多综合声望,感谢您的帮助,衷心祝愿您快乐每一天~
『伍』 编写程序要求:输入5个学生3门课程的成绩,
你好。
程序清单:
#include<stdio.h>
#include<string.h>
struct student //学生结构体
{
char name[30]; // 学生姓名
double score[3]; //三门成绩
double aver; //存平均成绩
} st[5],temp; //五个学生
int main()
{
double sum;//定义存放每个学生总成绩的变量
int i,j,count;
// 输入学生信息
for(i=0;i<5;i++)
{
printf("请输入%d号学生姓名:",i+1);
scanf("%s",st[i].name);
sum=0.0; //为每个学生的总成绩赋初值
for(j=0;j<3;j++)
{
printf("请输入%d号学生第%d门课程成绩:",i+1,j+1);
scanf("%lf",&st[i].score[j]); //循环输入每个学生的成绩
sum=sum+st[i].score[j]; //累加每个学生的总成绩
}
st[i].aver=sum/3.0;//计算每个学生的平均成绩
}
//利用冒泡法对平均成绩进行排序
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{
if(st[i].aver<st[j].aver)
{
memcpy(&temp,&st[i],sizeof(struct student));
memcpy(&st[i],&st[j],sizeof(struct student));
memcpy(&st[j],&temp,sizeof(struct student));
}
}
// 输出结果
printf(" 至少有两个成绩在90分以上的学生有: ");
for(i=0;i<5;i++)
{
count=0;
for(j=0;j<3;j++)
{
if(st[i].score[j]>=90)
{
count++;
}
}
if(count>=2)
printf("%s ",st[i].name);
}
printf(" 平均分由高到低进行排序: ");
for(i=0;i<5;i++)
{
printf("%s %.1f ",st[i].name,st[i].aver);
}
return 0;
}
运行结果:
望采纳!
『陆』 C语言编程:输入5名学生3门课程成绩
您好!下面是我写的程序希望对您有用!
#include<stadio.h>
void main()
{
int x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5,m1,m2,m3,m4,m5,n1,n2,n3;
printf("输入5名同学的3门课程的成绩 x1,x2,x3,x4,x5,y1,y2,y3,y5,y5,z1,z2,z3,z4,z5\n");
scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",&x1,&x2,&x3,&x4,&x5,&y1,&y2,&y3,&y4,&y5,&z1,&z2,&z3,&z4,&z5);
n1=(x1+x2+x3+x4+x5)/5;
n2=(y1+y2+y3+y4+y5)/5;
n3=(z1+z2+z3+z4+z5)/5;
m1=(x1+y1+z1)/3;
m2=(x2+y2+z2)/3;
m3=(x3+y3+z3)/3;
m4=(x4+y4+z4)/3;
m5=(x5+y5+z5)/3;
printf("%d,%d,%d,%d,%d,%d,%d,%d",m1,m2,m3,m4,m5,n1,n2,n3);
}
『柒』 有五个学生,每个学生有三门课程的成绩,从键盘输入学生数据(包括学号,姓名,3门课程成绩),计算出平均成绩
经测试,程序正确运行,并把输入结果保存在stud文件中。
源代码如下:
#include <stdio.h>
#define ID 11
typedef struct _stu
{
char id[ID];
int sco1;
int sco2;
int sco3;
}stu;
int main()
{
int i;
stu s[5];
FILE *fp;
float ave;
printf("请输入五个学生的学号和三门成绩:\n");
for(i=0;i<5;i++)
{
scanf("%s%d%d%d",s[i].id,&s[i].sco1,&s[i].sco2,&s[i].sco3);
}
if((fp=fopen("stud","w"))==NULL)
{
printf("文件打开失败\n");
return ;
}
for(i=0;i<5;i++)
{
ave=(s[i].sco1+s[i].sco2+s[i].sco3)/3.0;
fprintf(fp,"%s %d %d %d %.2f\n",s[i].id,s[i].sco1,s[i].sco2,s[i].sco3,ave);
}
fclose(fp);
return 0;
}
『捌』 输入五个学生三门课程的成绩,并进行如下操作。 1 计算并输出每门课程的平均分 2 输出每门
用excel软件可以解决的。
『玖』 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5个学生数据,要求输出三门课总平均
不需要那么麻烦,只需要把你的姓名以及考号输入电脑就可以查询你的各科成绩,也能得到你总成绩的平均分儿。
『拾』 输入五个学生3门课的成绩,计算和输出每个学生和每门课程的平均成绩。
#include<stdio.h>
#defineN5 //定义输入学生的个数
structstudent//定义学生结构体
{
charnum[6];
charname[8];
intscore[4];
floatavr;
}stu[N];
voidmain()
{
inti,j,max,maxi,sum;
floataverage;
for(i=0;i<N;i++)
{
printf("Inputscoresofstudent%d: ",i+1);//输入每个学生的数据
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("score%d:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average=0;
max=0;
maxi=0;
for(i=0;i<3;i++)//求平均数
{
sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
stu[i].avr=sum/3.0;
average+=stu[i].avr;
if(sum>max)
{
max=sum;
maxi=i;
}
}
average/=N;
printf(" NO. name score1 score2 score3 average ");
for(i=0;i<N;i++)//输出每个学生的信息
{
printf("%5s%8s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%9d",stu[i].score[j]);
printf("%8.2f ",stu[i].avr);
}
printf("average=%7.2f ",average);
printf("Thehighestscoreis:%s,scoretotal:%d.",stu[maxi].name,max);
}
验证吧~~