天天看点

学生成绩结构体c语言,结构体(学生成绩比较) | 新思维:C语言程序设计

结构体的声明和使用,指针形式的结构体

有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩)

样例输入

2

131001003 blue 90 80 70

131001008 clan 80 70 60

样例输出

85 75 65

131001003 blue 90 80 70

#include

struct student {

char sno[20];

char name[20];

int cj1, cj2, cj3;

};

int main()

{

int n, i, max=0;

int av1=0, av2=0, av3=0;

struct student s[100];

scanf("%d", &n);

for (i=0; i

scanf("%s %s %d %d %d", s[i].sno,s[i].name,

&s[i].cj1,

&s[i].cj2, &s[i].cj3);

}

for (i=0; i

av1=av1+s[i].cj1;

av2=av2+s[i].cj2;

av3=av3+s[i].cj3;

if (s[i].cj1+s[i].cj2+s[i].cj3>s[max].cj1+s[max].cj2+s[max].cj3)

max = i;

}

av1=av1/n; av2=av2/n; av3=av3/n;

printf("%d %d %d\n", av1, av2, av3);

printf("%s %s %d %d %d\n", s[max].sno, s[max].name,

s[max].cj1, s[max].cj2, s[max].cj3);

}

#include

struct student {

char sno[20];

char name[20];

int cj1, cj2, cj3;

};

int main()

{

int n, i, max=0;

int av1=0, av2=0, av3=0;

struct student s[100];

scanf("%d", &n);

for (i=0; i

scanf("%s %s %d %d %d", s[i].sno,s[i].name,

&s[i].cj1,

&s[i].cj2, &s[i].cj3);

}

for (i=0; i

av1=av1+s[i].cj1;

av2=av2+s[i].cj2;

av3=av3+s[i].cj3;

if (s[i].cj1+s[i].cj2+s[i].cj3>s[max].cj1+s[max].cj2+s[max].cj3)

max = i;

}

av1=av1/n; av2=av2/n; av3=av3/n;

printf("%d %d %d\n", av1, av2, av3);

printf("%s %s %d %d %d\n", s[max].sno, s[max].name,

s[max].cj1, s[max].cj2, s[max].cj3);

}

问题:假设学生的信息包括姓名、性别和数学成绩。编写程序,为3名学生输入信息,并将其中成绩最高的学生全部信息显示在屏幕上。

#include

struct student {

char name[10];

char sex;

int score;

};

int main()

{

struct student s1, s2, s3, max;

scanf("%s %c%d",s1.name,&s1.sex,&s1.score);

scanf("%s %c%d",s2.name,&s2.sex,&s2.score);

scanf("%s %c%d",s3.name,&s3.sex,&s3.score);

printf("All students are:\n");

printf("%13s%3c%4d\n",s1.name,s1.sex,s1.score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

max=s1;

if (max.score

if (max.score

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

#include

struct student {

char name[10];

char sex;

int score;

};

int main()

{

struct student s1, s2, s3, max;

scanf("%s %c%d",s1.name,&s1.sex,&s1.score);

scanf("%s %c%d",s2.name,&s2.sex,&s2.score);

scanf("%s %c%d",s3.name,&s3.sex,&s3.score);

printf("All students are:\n");

printf("%13s%3c%4d\n",s1.name,s1.sex,s1.score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

max=s1;

if (max.score

if (max.score

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

下面是运行结果,前3行是输入,其他是输出。

ZhangShan M 88

LiSi M 98

WangWu F 78

All students are:

ZhangShan M 88

LiSi M 98

WangWu F 78

The student is:

LiSi M 98

ZhangShan M 88

LiSi M 98

WangWu F 78

All students are:

ZhangShan M 88

LiSi M 98

WangWu F 78

The student is:

LiSi M 98

假设学生的信息包括姓名、性别和数学成绩。编写程序,给定3名学生信息,并用指针变量找出其中成绩最高的学生。

#include

typedef struct student {

char name[10];

char sex;

int score;

} Student;

int main()

{

Student s1= {"liu",'f',78},s2= {"li",'m',88},s3= {"wang",'f',83};

Student *p=&s1;

printf("All students are:\n");

printf("%13s%3c%4d\n",(*p).name,(*p).sex,(*p).score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

if(p->score

if(p->score

printf("The student is:\n");

printf("%13s%3c%4d\n",p->name,p->sex,p->score);

return 0;

}

#include

typedef struct student {

char name[10];

char sex;

int score;

} Student;

int main()

{

Student s1= {"liu",'f',78},s2= {"li",'m',88},s3= {"wang",'f',83};

Student *p=&s1;

printf("All students are:\n");

printf("%13s%3c%4d\n",(*p).name,(*p).sex,(*p).score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

if(p->score

if(p->score

printf("The student is:\n");

printf("%13s%3c%4d\n",p->name,p->sex,p->score);

return 0;

}

假设学生的信息包括姓名、性别和数学成绩。编写程序,给定3名学生信息,并调用函数找出其中成绩最高的学生。

#include

typedef struct student {

char name[10];

char sex;

int score;

} Student;

Student max_abc(Student a,Student b,Student c)

{

Student m=a;

if (m.score

if (m.score

return m;

}

int main()

{

Student s1= {"liu",'f',78},s2= {"li",'m',88},s3= {"wang",'f',83},max= {0};

printf("All students are:\n");

printf("%13s%3c%4d\n",s1.name,s1.sex,s1.score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

max=max_abc(s1,s2,s3);

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

#include

typedef struct student {

char name[10];

char sex;

int score;

} Student;

Student max_abc(Student a,Student b,Student c)

{

Student m=a;

if (m.score

if (m.score

return m;

}

int main()

{

Student s1= {"liu",'f',78},s2= {"li",'m',88},s3= {"wang",'f',83},max= {0};

printf("All students are:\n");

printf("%13s%3c%4d\n",s1.name,s1.sex,s1.score);

printf("%13s%3c%4d\n",s2.name,s2.sex,s2.score);

printf("%13s%3c%4d\n",s3.name,s3.sex,s3.score);

max=max_abc(s1,s2,s3);

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

假设学生的信息包括姓名、性别和数学成绩。编写程序,为100名学生输入信息,并将其中成绩最高的学生全部信息显示在屏幕上。

人数多,采用结构体数组。用符号常量暂定为5。

#include

#define N 5

typedef struct student {

char name[10];

char sex;

int score;

} Student;

int main()

{

int i=0;

Student s[N]= {0},max= {0};

for(i=0; i

scanf("%s %c%d",s[i].name,&s[i].sex,&s[i].score);

printf("All students are:\n");

for(i=0; i

printf("%13s%3c%4d\n",s[i].name,s[i].sex,s[i].score);

max=s[0];

for(i=1; i

if(max.score

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

#include

#define N 5

typedef struct student {

char name[10];

char sex;

int score;

} Student;

int main()

{

int i=0;

Student s[N]= {0},max= {0};

for(i=0; i

scanf("%s %c%d",s[i].name,&s[i].sex,&s[i].score);

printf("All students are:\n");

for(i=0; i

printf("%13s%3c%4d\n",s[i].name,s[i].sex,s[i].score);

max=s[0];

for(i=1; i

if(max.score

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

假设学生的信息包括姓名、性别和数学成绩。编写程序,为100名学生输入信息,并调用函数找出其中成绩最高的学生。

#include

#define N 5

typedef struct student {

char name[10];

char sex;

int score;

} Student;

Student max_p(Student *p);

int main()

{

int i=0;

Student s[N], max;

printf("Input data:\n");

for(i=0; i

scanf("%s %c%d",s[i].name,&s[i].sex,&s[i].score);

printf("All students are:\n");

for(i=0; i

printf("%13s%3c%4d\n",s[i].name,s[i].sex,s[i].score);

max=max_p(s);

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

Student max_p(Student *p)

{

int i=0;

Student m;

m=p[0];

for(i=1; i

if(m.score

return m;

}

#include

#define N 5

typedef struct student {

char name[10];

char sex;

int score;

} Student;

Student max_p(Student *p);

int main()

{

int i=0;

Student s[N], max;

printf("Input data:\n");

for(i=0; i

scanf("%s %c%d",s[i].name,&s[i].sex,&s[i].score);

printf("All students are:\n");

for(i=0; i

printf("%13s%3c%4d\n",s[i].name,s[i].sex,s[i].score);

max=max_p(s);

printf("The student is:\n");

printf("%13s%3c%4d\n",max.name,max.sex,max.score);

return 0;

}

Student max_p(Student *p)

{

int i=0;

Student m;

m=p[0];

for(i=1; i

if(m.score

return m;

}