当前位置:首页 » 考试成绩 » 结构体储存三个学生的成绩

结构体储存三个学生的成绩

发布时间: 2020-12-06 13:45:28

Ⅰ 用结构体编程三个学生的平均成绩的输出

#include<stdio.h>
struct student
{
char name[10]; //学生姓名
int score[4];//4个科目的分数
}stu[3]; //学生人数

int main()
{
int i,j,sum;
float avg;
sum=0;
printf("请输入学生的姓名跟分数:\n\n");
for(i=0;i<3;i++)
{
printf("输入stu[%d]的:\n",i);
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
{
printf("请输入score[%d]分数",j);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
for(j=0;j<4;j++)
{
for(i=0;i<3;i++)
{
sum=sum+stu[i].score[j];
avg=sum/3;
}
sum=0;
printf("score[%d]的平均分是:%5.2f\n",j,avg);
}
}

Ⅱ c语言:结构体:有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,要求输出3门课总平均成绩

定义了char number[3],所以只保存前三个字符,而你printf时却要输出6个,就连名字那前三个字符也输出了。比如第一个信息,学号只存成了B13,后面写的没有存入,姓名存了SDF,因为name跟在number之后,所以你在输出六个字符,就成了B13SDF

Ⅲ 用结构体数组存储学生信息,每个学生有姓名、学号、年龄和成绩。输入N(10)名学生信息,按成绩从高低

注意输入数据时的形式。
#include<stdio.h>
struct person
{int xuehao;
char name[20];
char sex;
int year;
int grade;
}man[80];
main()
{int n,i,max,k=0;
printf("一共有多少学生;");
scanf("%d",&n);
for(i=0;i<n;i++)
{scanf("%d,%d,%d,",&man[i].xuehao,&man[i].year,&man[i].grade);
scanf("%c,%s",&man[i].sex,&man[i].name);}
max=man[0].grade;
for(i=0;i<n;i++)
if(max<man[i].grade)
{max=man[i].grade;
k=i;}
printf("name sex xuehao year grade\n");
printf("--------------------------------------------------\n");
for(i=0;i<n;i++)
printf("%-12s%-4c%4d%8d%10d\n",man[i].name,man[i].sex,man[i].xuehao,man[i].year,man[i].grade);
printf("最高分的学生信息:\n");
printf("name sex xuehao year grade\n");
printf("--------------------------------------------------\n");
printf("%-12s%-4c%4d%8d%10d\n",man[k].name,man[k].sex,man[k].xuehao,man[k].year,man[k].grade);
}

Ⅳ 程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将

1. struct student
2. n - 1
3. a[i].name, a[j].name
4. for (i=0; i<3; i++)
5. printf("%6.2f ", s[j].score[i]);

Ⅳ c语言,设计一个学生结构体,输入三个成绩并求成绩最大值

这就是最基本的结构体操回作。答

#include<stdio.h>
typedefstructs{
charname[32];
intscore;
}student;
intmain(void){
studenta,b,c;
intmax;
scanf("%s%d",a.name,&a.score);
scanf("%s%d",b.name,&b.score);
scanf("%s%d",c.name,&c.score);
max=a.score>b.score?a.score:b.score;
max=max>c.score?max:c.score;
printf("maxscoreis%d ",max);
return0;
}

Ⅵ (1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求🙏

之前写过一个记录学生学号,年龄,体重,名字的数组结构,你可以稍作修改就可以了,请命名文件为HW1.java

importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.ObjectInputStream;
importjava.io.ObjectOutputStream;
importjava.io.Serializable;
importjava.util.Arrays;
importjava.util.Comparator;
importjava.util.Scanner;

<Student>,Serializable{
/**
*SerializableUID:ensuresserialize/de-.
*/
=-3515442620523776933L;

publicintgetNumber(){
returnnumber;
}

publicvoidsetNumber(intnumber){
this.number=number;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}

publicdoublegetWeight(){
returnweight;
}

publicvoidsetWeight(doubleweight){
this.weight=weight;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

privateintnumber;
privateintage;
privatedoubleweight;
privateStringname;

publicStudent(intnumber,intage,doubleweight,Stringname){
this.number=number;
this.age=age;
this.weight=weight;
this.name=name;
}

@Override
publicintcompareTo(Studento){
if(this.age==o.age){
return(int)(this.weight-o.weight);
}
returnthis.age-o.age;
}
}

<Student>{

@Override
publicintcompare(Studento1,Studento2){
returno1.getAge()-o2.getAge();
}
}

<Student>{

@Override
publicintcompare(Studento1,Studento2){
return(int)(o1.getWeight()-o2.getWeight());
}
}

publicclassHW1{
//.
publicstaticvoidmain(String[]args){
System.out.println(" WelcometotheSystem,Chooseoptionsbelow:");
printPrompt();

Student[]students=null;
Scannerscanner=newScanner(System.in);
while(scanner.hasNextInt()){
switch(scanner.nextInt()){
case1:
System.out.println("PrintStudentInformation");
if(students==null){
System.out.println("PleaseInitiliseNstudentsfirst");
}else{
printStudents(students);
}
printPrompt();
break;
case2:
System.out.println(":");
intnumber=scanner.nextInt();
students=initilise(number,scanner);
printPrompt();
break;
case3:
System.out.println("Addanewstudent");
printPrompt();
if(students==null){
System.out.println("PleaseInitiliseNstudentsfirst");
}else{
intnewLength=students.length+1;
students=Arrays.Of(students,newLength);
students[newLength-1]=createStudent(scanner);
System.out.println("Newstudenthasbeenadded.");
printPrompt();
}
break;
case4:
System.out.println("SortingbyAge,WeightinAsceorder");
if(students==null){
System.out.println("PleaseInitiliseNstudentsfirst");
}else{
Student[]sortedStudents=students;
Arrays.sort(sortedStudents);
printStudents(sortedStudents);
}
break;
case5:
System.out.println("CalcaulteMin,Max,AveofAgeandWeight");
if(students==null){
System.out.println("PleaseInitiliseNstudentsfirst");
}else{
Student[]sortedAgeStudents=students;
Arrays.sort(sortedAgeStudents,newStudentSortByAge());
Student[]sortedWeightStudents=students;
Arrays.sort(sortedWeightStudents,newStudentSortByWeight());
intaverageAge=0;
doubleaverageWeight=0.0;
for(Studentstudent:sortedAgeStudents){
averageAge+=student.getAge();
averageWeight+=student.getWeight();
}
averageAge=averageAge/sortedAgeStudents.length;
averageWeight=averageWeight/sortedWeightStudents.length;
System.out.printf("MinAge:%d,MaxAge:%d,AveAge:%d ",sortedAgeStudents[0].getAge(),sortedAgeStudents[sortedAgeStudents.length-1].getAge(),averageAge);
System.out.printf("MinWeight:%f,MaxWeight:%f,AveWeight:%f ",sortedWeightStudents[0].getWeight(),sortedWeightStudents[sortedWeightStudents.length-1].getWeight(),averageWeight);
}
break;
case6:
System.out.println("WriteStudentdataintofile");
try(ObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream(newFile("studentsData"),true))){
oos.writeObject(students);
printPrompt();
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
break;
case7:
System.out.println("ReadstudentDatafromfile");
try(ObjectInputStreamois=newObjectInputStream(newFileInputStream(newFile("studentsData")))){
students=(Student[])(ois.readObject());
printPrompt();
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(ClassNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
break;
default:
scanner.close();
System.out.println("Quit");
break;
}
}
}

publicstaticvoidprintPrompt(){
System.out.println("1:Displaycurrentstudents");
System.out.println("2:InitiliseNstudents");
System.out.println("3:Addnewstudent");
System.out.println("4:SortingbyAge,WeightinAsceorder");
System.out.println("5:CalcaulteMin,Max,AveofAgeandWeight");
System.out.println("6:WriteStudentdataintofile");
System.out.println("7:ReadstudentDatafromfile");
}

publicstaticStudent[]initilise(intn,Scannerscanner){
Student[]students=newStudent[n];
for(inti=0;i<n;i++){
students[i]=createStudent(scanner);
}
System.out.println(".");
returnstudents;
}

publicstaticvoidprintStudents(Student[]students){
for(Studentstudent:students){
System.out.printf("Student:%s,Number:%d,Age:%d,Weight:%f ",student.getName(),student.getNumber(),student.getAge(),student.getWeight());
}
}

(Student[]students){
for(Studentstudent:students){
System.out.printf("Age:%d,Weight:%f,Student:%s,Number:%d ",student.getAge(),student.getWeight(),student.getName(),student.getNumber());
}
}

(Scannerscanner){
intstudentNumber=0,studentAge=0;
doublestudentWeight=0.0;
StringstudentName=null;
System.out.println("EnterStudentNumber:");
while(scanner.hasNext()){
studentNumber=scanner.nextInt();

System.out.println("EnterStudentAge:");
studentAge=scanner.nextInt();

System.out.println("EnterStudentWeight:");
//nextDouble仅仅读取double的值,在double值后的' '将会被nextLine()所读取,所以读取studentName时需要再读取一次nextLine()
studentWeight=scanner.nextDouble();

System.out.println("EnterStudentName:");
scanner.nextLine();
studentName=scanner.nextLine();
break;
}
returnnewStudent(studentNumber,studentAge,studentWeight,studentName);
}
}

运行结果,

Ⅶ 10个学生,结构体变量输出3门课总平均成绩,和最高分的学生的数据(包学号、姓名、3门课成绩、平均分

#include "stdio.h"
#include
#define SIZE 5

struct student{
char id[20];
char name[20];
int score[3];
} stud[SIZE];
float ave[SIZE];

void input() /* 输入学生的信息 */
{
int i;

for(i=0;i<SIZE;i++)
{
printf("第%d个学生的信息:\n",i+1);
scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
}
}

void average() /* 求每个学生的总平均分 */
{
int i;

for(i=0;i<SIZE;i++)
{
ave[i]=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3.0;
}
}

void max() /* 找出总分最高学生的数据 */
{
int i,j;
float ftemp;
struct student temp;

for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE-i-1;j++)
{
if(ave[j]<ave[j+1])
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
ftemp=ave[j];
ave[j]=ave[j+1];
ave[j+1]=ftemp;
}
}
}
printf("\n%s %s %d %d %d %3.1f\n",stud[0].id,stud[0].name,stud[0].score[0],stud[0].score[1],stud[0].score[2],ave[0]);
}

void output() /* 输出学生的信息 */
{
int i;

printf("\n");
for(i=0;i<SIZE;i++)
printf("%s %s %d %d %d %3.1f\n",stud[i].id,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],ave[i]);
}

void main()
{
input();
average();
output();
max();
}

Ⅷ 用c语言定义结构体,存储学生学号和三门课成绩及平均分,初始化成绩如下

k=N[(int)s[0]-1].am+N[(int)s[0]-1].bm+N[(int)s[0]-1].cm;

改为
k=N[(int)(s[0]-'1')].am+N[(int)(s[0]-'1')].bm+N[(int)(s[0]-'1')].cm;
试试。

Ⅸ 学生有三门课程:A、B、C,3名学生的成绩,要求用结构体输出三个学生平均值等,下面代码哪里错了

代码的关键错误是下面两个for语句后面都多加了一个分号,错误如下注释:

for(i=0;i<=n-1;i++);//多加了回一个分号
s[i].aver=(s[i].a+s[i].b+s[i].c)%3;//平均值计答算应该是除以3即s[i].aver=(s[i].a+s[i].b+s[i].c)/3.0;除以3.0是为了将aver的结果转换为float
for(i=0;i<=n-1;i++);//多加了一个分号
cout<<"姓名:"<<s[i].name<<","<<"A课程成绩:"<<s[i].a<<","<<"B课程成绩:"<<s[i].b<<","<<"C课程成绩:"<<s[i].c<<","<<"平均分:"<<s[i].aver<<"."<<endl;

Ⅹ 定义结构体,包含三个成员学号,姓名,成绩,输入两个学生的学号、姓名和成绩,输出成绩较高学生的

scanf("%d,%s,%f",&student1.num,&student1.name,&student1.score); scanf("%d,%s,%f",&student2.num,&student2.name,&student2.score); 上面这2句不对,可以编译成功,但是保存的值是错误的,因为它会把“逗号”当作字符送给了%s,所以最后面的%d没有输入数据。可以换成空格。 scanf() 开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表符(tab)或者换行符(newline)处停止读取。 #include struct Student { int num; char name[20]; float score; }; void main() { struct Student student1,student2; scanf("%d %s %f",&student1.num,&student1.name,&student1.score); scanf("%d %s %f",&student2.num,&student2.name,&student2.score); if(student1.score>student2.score) printf("%s(%d):%6.2f\n",student1.name,student1.num,student1.score); else printf("%s(%d):%6.2f\n",student2.name,student2.num,student2.score); }

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919