第一个循环运行完全正常,但第二个循环未显示数据。在第一个循环中输入数据后,程序结束。我显示错了吗?顺序不正确吗?
#include <iostream>
#include <string>
using namespace std;
struct Empinfo
{
string name;
int pay;
double hours;
double gross_pay;
};
int main()
{
int count;
int index;
const int arraysize = 3;
Empinfo employee[arraysize];
for (count = 0; count < arraysize; count++)
{
cout << "Enter name of employee" << " " << (count + 1) << ":";
cin >> employee[count].name;
cout << "Enter the hourly pay for " << employee[count].name << ": ";
cin >> employee[count].pay;
cout << "Enter how many hours " << employee[count].name << "worked: ";
cin >> employee[count].hours;
cout << endl;
}
for (index = 0; index << arraysize; index++)
{
cout << employee[index].name;
cout << employee[index].pay;
cout << employee[index].hours;
cout << employee[index].gross_pay;
}
system("pause");
return 0;
}
答案 0 :(得分:2)
for (index = 0; index << arraysize; index++)
您的条件变为0 << 3
,即0
,因此循环甚至不会运行一次。
答案 1 :(得分:0)
通常,这句话:
index << arraysize
应为:
index < arraysize
答案 2 :(得分:0)
您的第二个for循环编写错误
for (index = 0; index << arraysize; index++){ ... }
如果您发现自己做了 index << arraysize 而不是 index
<<< / em>和>> 运算符是按位运算符,您可以在此处阅读:https://www.geeksforgeeks.org/bitwise-operators-in-c-cpp/
我还提出了一些建议,以提高可读性并减少c ++程序中的混乱情况,当您使用变量声明for循环时,就不需要在循环外执行 inline ,如下所示:
for (int count = 0; count < arraysize; count++){
//Insert your logic here
}
for (int index = 0; index << arraysize; index++){
//Insert your logic here
}
这样做可以删除程序顶部的count和index变量声明。