#include <iostream>
#include <string>
using namespace std;
struct person
{
string name;
int numberofpies;
string flavour;
};
int main()
{
for (int i=1; i<10; i++)
{
cout << "press <1> to add a person or press <2> to get results" << endl;
int input;
cin >> input;
person newperson[i];
string names, flavours;
int numbersofpies;
if (input==1)
{
cout << "please enter your name " << endl;
cin >> names;
cout << "enter the number of pies you ate" << endl;
cin >> numbersofpies;
cout << "enter the flavour" << endl;
cin >> flavours;
newperson[i].numberofpies=numbersofpies;
newperson[i].flavour=flavours;
newperson[i].name=names;
}
else if(input == 2)
{
int x=1;
while (x>i)
{
cout << "name : " << newperson[x].name << endl;
cout << "number of pies : " << newperson[x].numberofpies<< endl;
cout << "flavour: " << newperson[x].flavour << endl;
}goto point;
}
}point:
return 0;
}
我的問題是,該代碼正常編譯和運行完全,直到第一循環結束,然後將其實驗和嘗試不同的解決方案,我意識到這個問題是在過去的三年線後死機等等'if語句'for循環一次迭代後墜毀
newperson[i].numberofpies=numbersofpies;
newperson[i].flavour=flavours;
newperson[i].name=names;
因爲刪除它們後問題就消失了。然而,這個程序顯然不會做它應該做的事情,所以我想我的問題在這些方面有什麼問題,如果他們不是問題是什麼?我該如何解決它? 另外,我不介意其他方法,如果它有我可以學習的想法,但我最重要的是瞭解問題,以瞭解沒有得到程序運行的興趣。
評論你對數組的書再次章節。 – LogicStuff
認真這就是所有你不得不說的你不能告訴我我的錯誤? – fahad97azawi
檢查數組索引邊界限制。另外,可變長度數組不是標準的C++,而是一些編譯器提供的擴展,它最好避免。 – doug