ljjxbc 发表于 2019-12-4 21:56:43

刚学C++的萌新遇到了问题,求求大佬们看看哪里出错了

******************************************************************************
刚学c不久,遇到一个题目,写不出来 ,求大佬们告知问题出在哪里
******************************************************************************
这里是问题:
(1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;
(2) 各项目名次取法有如下几种:
取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;         
(3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
******************************************************************************************************************************
这是菜逼萌新我打的代码。。。
#include<stdio.h>
int main()
{
      int a, b=1,c,d,e=0,f=0,g=0;/*e为计算机学院的总分,f为理学院总分,g为电气学院总分*/
      printf("参赛院系:");
      printf("计算机学院\t理学院\t电气学院\n");
      printf("男子竞赛项目:");
      printf("1000米跑\t跳远\t铅球\n");
      printf("女子竞赛项目:");
    printf("800米跑\t50米跑\t引体向上\n");
      struct people
      {
                char name;
                char sex;
                int institute;/*计算机学院代号为1,理学院为2,电气学院为3*/
                char project;
                int rank;
      }stu;
      for(a=0;a<=29;a++)
      {
                printf("请输入第%d参赛人员信息\n",b);
                printf("请输入名字:");
      scanf("%s",stu.name);
                printf("请输入性别:");
                scanf("%s",stu.sex);
                printf("请输入院系代号:");
                scanf("%d",stu.institute);
                printf("请输入比赛项目:");
                scanf("%s",stu.project);
                printf("请输入名次:");
                scanf("%d",stu.rank);
                b=b+1;
      }
      for(c=0;c<=29;c++)
      {
                if(stu.institute==1)
                {
                        switch(stu.rank)/*switch用来判断该学生的名次并计算他的分数*/
                {
             case 1:d=7;break;
             case 2:d=5;break;
                case 3:d=3;break;
             case 4:d=2;break;
             case 5:d=1;break;
                }
                        e=e+d;
                }
                if(stu.institute==2)
                {
                        switch(stu.rank)
                {
             case 1:d=7;break;
             case 2:d=5;break;
                case 3:d=3;break;
             case 4:d=2;break;
             case 5:d=1;break;
                }
                        f=f+d;
                }
                if(stu.institute==3)
                {
                        switch(stu.rank)
                {
             case 1:d=7;break;
             case 2:d=5;break;
                case 3:d=3;break;
             case 4:d=2;break;
             case 5:d=1;break;
                }
                        g=g+d;
                }
      }
      printf("计算机学院的总分是%d",e);
      printf("理学院的总分是%d",f);
      printf("电气学院的总分是%d",g);
      return 0;
}
我现在只做到输出总分,后面的等下再去想想怎么做。

为什么我的程序运行到printf("请输入院系代号:");就不运行了;后面的也显示不出来,然后过了一会他就自动关了

ljjxbc 发表于 2019-12-4 21:57:40

刚玩这个论坛,不会发截图。。。

jackz007 发表于 2019-12-5 01:03:18

本帖最后由 jackz007 于 2019-12-5 01:05 编辑

                把下面 2 句修改一下就好了
. . . . . .
                printf("请输入院系代号:")            ;
                scanf("%d", & stu.institute)      ; // 读入整型数必须使用取址操作符
. . . . . .
                printf("请输入名次:")                ;
                scanf("%d", & stu.rank)         ; // 读入整型数必须使用取址操作符
. . . . . .

ljjxbc 发表于 2019-12-5 07:08:51

jackz007 发表于 2019-12-5 01:03
把下面 2 句修改一下就好了
. . . . . .
                printf("请输入院系代号:")    ...

谢谢了
页: [1]
查看完整版本: 刚学C++的萌新遇到了问题,求求大佬们看看哪里出错了