【发布时间】:2015-01-21 17:38:43
【问题描述】:
这个程序的重点是让用户输入一定数量的学生的成绩,从 A、B、C、D 或 F 的成绩范围内输入到 50 岁。最后,程序是应该显示每个年级有多少学生。每当我测试以下代码时,我为 for 循环输入的任何内容每次都会重复,这样如果我输入它来执行 3 年级的学生,我为学生 1 输入的任何字母对于每个学生来说都是相同的等级,所以如果一个学生得 A,他们都得 A。我还必须在这个程序中使用数组,因为它是针对大学的。抱歉,如果没有足够的信息,这是我第一次发帖。
#include<iostream>
#include<iomanip>
#include<string>
void gradeTotals();
using namespace std;
int x,z,a=0,b=0,c=0,d=0,f=0,i=0;
char grade[50];
int main()
{
cout<<"Please enter the number of students"<<endl;
cin>>x;
for (i=0;i<x;i++)
{
int y;
y=i+1;
cout<<"Please enter a letter grade of A,B,C,D, or F for student "<<y<<endl;
cout<<"All grades must be uppercase"<<endl;
cin>>z;
grade[i]=z;
gradeTotals();
}
}
void gradeTotals()
{
if (grade[i]=='A')
{
a++;
}
else if (grade[i]=='B')
{
b++;
}
else if (grade[i]=='C')
{
c++;
}
else if (grade[i]=='D')
{
d++;
}
else if (grade[i]=='F')
{
f++;
}
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
cout<<d<<endl;
cout<<f<<endl;
}
【问题讨论】:
-
为什么要对存储字符的双精度数组进行分级?
-
另外:
grade[i]='F'使用的是赋值,而不是比较。 -
你忘了问问题。你讲了一个故事,展示了一些代码,然后就停下来了。该按钮被标记为“”是有原因的。
-
z是一个整数。你期望它如何保持字母等级? -
对不起,我的问题是如何做到这一点,所以我的 for 循环让我可以为每个下标输入一个新值。