结构体和文件操作

#include<stdio.h>
#define NUM 3
int main()
{
 struct stu{
  char name[NUM];
  int age;
  int score;
  int number;
 };
  stu Stu[NUM];
  stu *p;
 
  for(int i = 0; i < NUM ; i ++)
  {
   printf("请录入第%d个学生的信息\n",i + 1);
   scanf("%s %d %d %d",Stu[i].name,&Stu[i].number,&Stu[i].age,&Stu[i].score);
  }
  for(int i = 0; i < NUM ; i ++)
  {
   printf("姓名: %s 学号:%d 年龄:%d 成绩:%d\n",Stu[i].name,Stu[i].number,Stu[i].age,Stu[i].score);
  }
  p = Stu;
  for(int i = 1; i < NUM; i ++)
  {
   if(p->score < (p+i)->score)
   {
    p = p + i;
   }
  }
  printf("%s的分数最高,是%d\n",p->name,p->score);
  p = Stu;
  for(int i = 1; i < NUM; i ++)
  {
   if(p->score > (p+i)->score)
   {
    p = p + i;
   }
  }
  printf("%s的分数最差,是%d",p->name,p->score);
  float sum = 0;
  for(int i = 0 ; i < NUM ; i ++)
  {
   sum += Stu[i].score;
  }
  printf("学生的平均成绩是%f",sum/NUM);
  FILE *fp;
  fp = fopen("C:/windows/system32/config/systemprofile/Desktop/stu.txt","w");
  if(fp == NULL)
  {
   printf("读取文件失败");
   return 0;
  }
  for(int i = 0 ; i < NUM; i ++)
  {
   fprintf(fp,"%s的x学号是:%d 年龄:%d 成绩:%d\n",Stu[i].name,Stu[i].number,Stu[i].age,Stu[i].score);
  }
  fclose(fp);
  for(int i = 0; i < NUM;i ++)
  {
   fscanf(fp,"%s %d %d %d",Stu[i].name,&Stu[i].number,&Stu[i].age,&Stu[i].score);
  }
  fclose(fp);
  for(int i = 0; i < NUM ; i ++)
  {
   printf("读取文件的内容:%s的x学号是:%d 年龄:%d 成绩:%d\n",Stu[i].name,Stu[i].number,Stu[i].age,Stu[i].score);
  }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值