1.实现学生信息的结构体定义,其中包含:姓名、学号、年龄、成绩。通过终端录入10名学生的信息,求最高分学生的姓名和分数,最低分学生的姓名和分数,以及平均分。(通过结构体指针)
#include <stdio.h>
#include <string.h>
#define NUM 10
typedef struct _Student{
char name[10];
int age;
int number;
int score;
}Student;
int main(int argc,constchar * argv[])
{
Student stus[NUM];
//"请输入学生信息!
for(int i=0;i<NUM;i++)
{
printf("请输入第%d个学生信息,格式:学号姓名年龄成绩\n",i+1);
scanf("%d %s %d %d",&stus[i].number,stus[i].name,&stus[i].age,&stus[i].score);
}
//输出学生的信息
for(int i=0;i<NUM;i++)
{
printf("第%d个学生信息:学号%d姓名%s年龄%d 成绩%d\n",i+1,stus[i].number,stus[i].name,stus[i].age,stus[i].score);
}
//最高分
struct_Student * pstu; //结构体指针
pstu = stus;
int max = pstu->score;
char maxname[10];
for(int i=1;i<NUM;i++)
{
pstu++;
if(max < pstu->score)
{
max = pstu->score;
strcpy(maxname,pstu->name);
}
}
printf("最高分的姓名:%s成绩:%d\n",maxname,max);
//最低分
pstu = stus;
int min = pstu->score;
char minname[10];
for(int i=1;i<NUM;i++)
{
pstu++;
if(min > pstu->score)
{
min = pstu->score;
strcpy(minname,pstu->name);
}
}
printf("最低分的姓名:%s成绩:%d\n",minname,min);
//平均分
float sum=0;
pstu = stus;
for(int i=0;i<NUM;i++)
{
sum = sum + pstu->score;
pstu++;
}
printf("平均分:%f",sum/NUM);
return0;
}
#include <stdio.h>
#define NUM 10
typedef struct _Student{
char name[10];
int age;
int number;
int score;
}Student;
int main(int argc,constchar * argv[])
{
Student stus[NUM];
//输入学生信息
for(int i=0;i<NUM;i++)
{
printf("请输入第%d个学生信息,格式:学号姓名年龄 成绩\n",i+1);
scanf("%d %s %d %d",&stus[i].number,stus[i].name,&stus[i].age,&stus[i].score);
}
//保存到文件
FILE * fp;
fp=fopen("//Users//len//Desktop//stu.txt","w");
for(int i=0;i<NUM;i++)
{
fprintf(fp,"%d %s %d %d\n",stus[i].number,stus[i].name,stus[i].age,stus[i].score);
}
fclose(fp);
//读取文件内容
fp=fopen("//Users//len//Desktop//stu.txt","r");
if(fp==0)
{
printf("文件打开失败!\n");
return0;
}
int i=0;
while (!feof(fp))
{
fscanf(fp,"%d %s %d %d\n",&stus[i].number,stus[i].name,&stus[i].age,&stus[i].score);
i++;
}
//输出读取的内容
for(int i=0;i<NUM;i++)
{
printf("第%d个学生信息:学号%d姓名%s年龄%d成绩%d\n",i+1,stus[i].number,stus[i].name,stus[i].age,stus[i].score);
}
fclose(fp);
return0;
}