jonnyljt
2021-07-01 22:51
采纳率: 100%
浏览 14

求解定义一个学生成绩的结构体数组

定义一个学生成绩的结构体数组,编写函数,根据学生成绩给出“优、良、中、及格”的评定“90-100”-优、“80-90”-良,“70-80”-中,“60-70”-及格。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • CSDN专家-link 2021-07-01 22:53
    已采纳

    成绩除以10,用switch...case...

    struct student
    {
      char name[20];
      int score;
      char grade[10];
    }stu[100];
    
    int n=0;
    
    void fun()
    {
      for(int i=0;i<n;i++)
      {
        int g = stu[i].score/10;
        switch(g)
        {
          case 9:
          case 10:
            stu[i].grade = "优";
            break;
          case 8:
            stu[i].grade = "良";
            break;
          case 7:
            stu[i].grade = "中";
            break;
          case 6:
            stu[i].grade = "及格";
            break;
          default:
            stu[i].grade = "不及格";
            break;
        }
      }
    }
    
    void main()
    {
      printf("请输入学生人数:");
      scanf("%d",&n);
      printf("请逐行输入%d个学生的姓名和成绩:\n",n);
      int i;
      for(i=0;i<n;i++)
        scanf("%s %d",stu[i].name,&stu[i].score);
      fun();
      for(i=0;i<n;i++)
        printf("%s %d %s\n",stu[i].name,stu[i].score,stu[i].grade);
    }
    
    已采纳该答案
    1 打赏 评论
  • CSDN专家-link 2021-07-02 14:54

    成绩除以10,用switch...case...

    struct student
    {
      char name[20];
      int score;
      char grade[10];
    }stu[100];
    
    int n=0;
    
    void fun()
    {
      for(int i=0;i<n;i++)
      {
        int g = stu[i].score/10;
        switch(g)
        {
          case 9:
          case 10:
            strcpy(stu[i].grade ,"优");
            break;
          case 8:
            strcpy(stu[i].grade ,"良");
            break;
          case 7:
            strcpy(stu[i].grade ,"中");
            break;
          case 6:
            strcpy(stu[i].grade ,"及格");
            break;
          default:
            strcpy(stu[i].grade ,"不及格");
            break;
        }
      }
    }
    
    void main()
    {
      printf("请输入学生人数:");
      scanf("%d",&n);
      printf("请逐行输入%d个学生的姓名和成绩:\n",n);
      int i;
      for(i=0;i<n;i++)
        scanf("%s %d",stu[i].name,&stu[i].score);
      fun();
      for(i=0;i<n;i++)
        printf("%s %d %s\n",stu[i].name,stu[i].score,stu[i].grade);
    }
    
    1 打赏 评论

相关推荐 更多相似问题