【发布时间】:2012-12-06 01:07:55
【问题描述】:
代码如下:
void option5 (StudentRecord student[], int n)
{
double gpaThreshold;
char enteredMajor;
int i;
cout << "Enter a GPA threshold: ";
cin >> gpaThreshold;
cin.ignore(80, '\n');
cout << "Enter a Major: ";
cin >> enteredMajor;
cin.ignore(80, '\n');
enteredMajor = toupper(enteredMajor);
for (i = 0; i < n; i++)
{
if (student[i].gpa >= gpaThreshold && student[i].major == enteredMajor)
{
if (i % 10 == 0)
{
cin.ignore();
}
cout << setw(3) << right << i+1 << ". "
<< setw(20) << left << student[i].lastName
<< setw(20) << left << student[i].firstName
<< setw(8) << left << student[i].major
<< fixed << setprecision(2) << setw(8) << left << student[i].earnedHours
<< fixed << setprecision(2) << setw(6) << left << student[i].gpa << endl;
}
}
}
StudentRecord 是一个结构,该行上唯一的整数是 'i',而指针(我必须假设)是 .major。
我想将输入的专业与数组中的“专业”值进行比较。 例如。我输入化学 -转向化学 - 获取该专业下的所有学生(和 GPA 门槛) - 显示上述陈述('X'专业的所有学生)
有什么建议吗?帮助?评论?正面/负面反馈?
编辑:这是结构:
struct StudentRecord
{
char lastName [16]; // field definitions of the structure
char firstName[16];
char hometown [16];
char major[5];
int studentNumber;
double balance;
int earnedHours;
double gpa;
};
【问题讨论】:
-
我忘了说,就是这一行:
if (student[i].gpa >= gpaThreshold && student[i].major == enteredMajor) -
如果没有看到 struct StudentRecord 的声明,很难弄清楚代码应该做什么。
-
我需要在本地声明'i'吗?如,在 for 循环内?
-
这一切都很好。您希望字符数组和单个
char之间的比较做什么?
标签: c++ arrays pointers integer