坐等!!!定义学生结构体类型,其成员包括学号、姓名、3门课的成绩 用一个函数input从键盘输入5个学生的

定义学生结构体类型,其成员包括学号、姓名、3门课的成绩
(1) 用一个函数input从键盘输入5个学生的数据
(2) 用一个函数average求每个学生的总平均分
(3) 用一个函数max找出总分最高学生的数据
输出3门课总平均成绩,以及最高分学生的数据。

代码如下:

#include <stdio.h>

#include  <string.h>

struct student {

long  sno;

char  name[10];

float  score[3];

};

void fun( struct student  *b)

{

b->sno = 10004;

strcpy(b->name, "LiJie");

}

main()

{struct student  t={10002,"ZhangQi", 93, 85, 87};

int  i;

printf("\n\nThe original data :\n");

printf("\nNo: %ld  Name: %s\nScores:  ",t.sno, t.name);

for (i=0; i<3; i++)  printf("%6.2f ", t.score[i]);

printf("\n");

fun(&t);

printf("\nThe data after modified :\n");

printf("\nNo: %ld  Name: %s\nScores:  ",t.sno, t.name);

for (i=0; i<3; i++)  printf("%6.2f ", t.score[i]);

printf("\n");

}


扩展资料

结构体内标的定义方式:

结构体,透明表区,DATA ELEMENT,DOMAIN

透明表是对一个物理表的逻辑描述,透明表里有许多字段,并且定义某些字段为 PRIMARY KEY,字段里又包含 DATA ELEMENT,用来描述语言属性和技术属性。DATA ELEMENT 中又包含 DOMAIN,它是定义数据类型和字段长度。

结构体一般是用来定义一个结构变量,有临时数据的储存,没有 PRIMARY KEY,结构体里包含 COMPONENT 而不是 FIELD

参考资料来源:

百度百科——结构体类型

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-12
#include "stdio.h"
#include <stdlib.h>
#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();
}本回答被提问者采纳

坐等!!!定义学生结构体类型,其成员包括学号、姓名、3门课的成绩 用一...
printf("\\nNo: %ld Name: %s\\nScores: ",t.sno, t.name);for (i=0; i<3; i++) printf("%6.2f ", t.score[i]);printf("\\n");}

...输入一个学生的学号、姓名、及3门课的成绩,计算机并输出其平均成绩...
void main(){ struct Student{ char id[10];char name[10];int score;} stu = {"001", "Sam", 80};printf("%s\\t%s\\t%d", stu.id, stu.name, stu.score);}

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

用C语言编写5名学生的信息,包括学生学号(字符型)、姓名(字符型)和3...
include<stdio.h> struct student \/\/定义结构体,包括学号,姓名,成绩,平均分,总成绩 { int no;char name[10];int score[3];float ave;int sum;};int main(){ struct student s[5], temp;int i, j;printf("input 5 students' informations\\n");for(i = 0; i < 5; ++i) ...

...学生,每个学生的数据包括学号、姓名、3门课的成绩
void input(STU *stu, int num) \/\/stu为学生数组的首地址,num为数组长度 { int i ;printf("请输入%d个学生的基本情况: \\n",num) ;printf("姓名 学号 成绩一 成绩二 成绩三\\n") ;for(i=0; i<num; i++){ scanf("%s%s%f%f%f",&stu[i].name,&stu[i].stunum,&stu[i].score1...

...每个学生的数据包括学号、姓名和3门课的成绩,用键盘输入n个学生的...
define MAX 100 struct Student { char name[20];int number;int s[3];int average;};struct Student stu[MAX];int main(){ int n,i,j,m,max;printf("请输入人数:");scanf("%d",&n);printf("请依次输入每个学生的姓名、学号、及三门课成绩:\\n");for(i=0;i<n;i++){ printf("...

...每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数 ...
include<stdio.h> define max 5 \/*设定要输入成绩的学生个数*\/ double zpj; \/*总平均值*\/ struct student \/*结构体*\/ { int num;char name[10];int score1;int score2;int score3;double pj;};struct student stu[max],temp;void Input() \/*输入函数*\/ { int i;for(i...

有3个学生,每个学生的数据包括学号姓名及三门课成绩,总成绩和平均成绩...
我这个是求三门成绩的和,你加个变量来存 成绩和\/3 再一起输出就行了 include <stdio.h> define Size 3 typedef struct { int num;char name[20];int cj[3];int sum;}student;void shuru(student s[]);student zuigao(student s[]);int main(){ student s[Size];student z;int i...

有4个学生,每个学生有3门课的成绩,从键盘上输入以上数据,计算每个学生...
我这儿有个现成的程序,原来考试的时候做的,有5个学生,包括学号,姓名,三门课的成绩,我也懒得改动了,你只要改一下就可以用了的。include "stdio.h"define SIZE 5 struct students_info { char sn[10];char name[20];float score[3];float aver;} student[SIZE];savefile(){ FILE *fp;...

...每个学生的数据包括学号'姓名及3门课的成绩,总成绩和平均成绩,从...
define N 10 struct student {char num[6]char name[8]int score[4]float avr;}stu[N];main(){int i,j,max,maxi,sum;float average;for(i=0;i<N;i++){printf(“\\ninput scores of student %d:\\n”,i+1);printf(“NO.:”);scanf(“%s”,stu[i].num);printf(“name”);scanf...

相似回答