C GPA总点平均值

时间:2014-11-21 13:21:24

标签: c

您好我对CI非常陌生我试图编写一个简单的程序,提示用户输入一些模块,然后输入每个模块的信用和数字等级,该程序必须打印出用户收到的信息,包括每个模块的字母等级和底部的GPA。我已经到了我试图将数字等级转换为字母等级的地步,我正在尝试写一个我可以输入数字等级的课程说" mod1.grade"这将返回字母等级,但不能解决这个问题,因为我说我是一个完整的新人,所以对任何帮助都会感激不尽。

 #include <stdio.h>
 #include <string.h>

 struct module { char moduleid[10]; int credit; float grade; }; 
 int main( ) { 
      struct module mod1,mod2; printf("Please enter: module id, module credit and module grade\n");
      scanf("%s%d%f",mod1.moduleid,&mod1.credit,&mod1.grade);
      scanf("%s%d%f",mod2.moduleid,&mod2.credit,&mod2.grade);

      String getGrade (float input){

        String letterGrade;
        if(input >= 80&&<=100){
          letterGrade = 'A';
        }
        return letterGrade;
      }

    printf( "Module id\tCredit\t\tGrade\n"); 
    printf("%s\t\t%d\t\t%f\t%s\n",mod1.moduleid,mod1.credit,mod1.grade,getGrade(mod1.grade));
    printf( "%s\t\t%d\t\t%f\n",mod2.moduleid,mod2.credit,mod2.grade);

    return 0;
}

1 个答案:

答案 0 :(得分:0)

您的代码应为:

#include <stdio.h>
#include <string.h>

 struct module {
  char moduleid[10];
  int credit;
  float grade;
 }; 

  char getGrade (float input){ //you need to return a char
     //there isn't any "String" data type in C
     char letterGrade; //char not String
     if(input >= 80&&input<=100){ //note the difference here
          letterGrade = 'A';
     }
   return letterGrade;
   }

  int main( ) { 
      struct module mod1,mod2;
      printf("Please enter: module id, module credit and module grade\n");
      scanf("%s%d%f",mod1.moduleid,&mod1.credit,&mod1.grade);
      scanf("%s%d%f",mod2.moduleid,&mod2.credit,&mod2.grade);

      printf( "Module id\tCredit\t\tGrade\n"); 
      printf("%s\t\t%d\t\t%f\t%c\n",mod1.moduleid,mod1.credit,mod1.grade,getGrade(mod1.grade));//%c for a character
      printf( "%s\t\t%d\t\t%f\t%c\n",mod2.moduleid,mod2.credit,mod2.grade,getGrade(mod2.grade)); //same here too

      return 0;
   }