我正在使用等級報告來構建程序,並且在使用開關盒計算GPA時遇到了問題。我不確定爲什麼它沒有分配正確的值。我還想知道是否有辦法要求提供的班級數量,然後讓循環執行上述次數。正在初始化開關盒
下面是代碼:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Grades
{
char Name[20];
int Hrs;
int ID;
char ClassName[20];
char Grade;
char ClassID[6];
};
int main()
{
struct Grades Transcript[6];
int classCnt = 0;
int vHrs=0, vGPA=0, totalHours=0, totalPoints = 0;
char vGrade;
char vName[20], vCID[6], vClassName[20];
printf("Enter Students Name: ");
fgets(vName, 20, stdin);
do
{ printf("\nEnter Class ID: ");
fgets(vCID, 6, stdin);
fflush(stdin);
strcpy_s(Transcript[classCnt].ClassID, vCID);
printf("Enter Class Name: ");
fgets(vClassName, 20, stdin);
strcpy_s(Transcript[classCnt].ClassName, vClassName);
printf("Enter Class Hours: ");
fflush(stdin);
scanf("%d", &vHrs);
Transcript[classCnt].Hrs = vHrs;
printf("Enter Class Grade: ");
fflush(stdin);
scanf("%c", &vGrade);
Transcript[classCnt].Grade = vGrade;
classCnt++;
fflush(stdin);
totalHours+=vHrs;
switch (vGrade) {
case 'A':
case 'a': 4*vHrs;
break;
case 'B':
case 'b': 3*vHrs;
break;
case 'C':
case 'c': 2*vHrs;
break;
case 'D':
case 'd': 1*vHrs;
break;
case 'F':
case 'f': 0;
break;
default: printf("Invalid Grade");}
totalPoints += vGrade;
vGPA = (totalPoints/totalHours);
}while(classCnt<=5);
printf("********************************** Grade Report: *************************************");
printf("\n%d\n", totalHours);
printf("%d\n", vGPA);
system("Pause");
return 0;
哇。我完全忘記了這一點,只是把它作爲4 * vHrs什麼也不做。我甚至在我的日曆上寫下了一張便條,上面掛着我......哈哈。十分感謝你的幫助! – user2084990 2013-02-28 01:07:51
如果我設計過一門語言,我會忽略'++'功能。地獄裏有一種以該運營商命名的語言!只有一個瘋子纔會使用:-) – 2013-02-28 01:15:04
@Aniket,當編碼器被迫在'bigHonkinVariableName ++'和'bigHonkinVariableName = bigHonkinVariableName + 1'之間選擇時,我懷疑他們會選擇前者:-) – paxdiablo 2013-02-28 01:17:32