我只是一個初學者,嘗試了一些代碼,我的老師教我們使用和教科書的東西。當「else」被觸發時,爲什麼循環會自行循環?這是因爲所謂的內存分配?
該程序旨在讓用戶輸入他們的名字並輸入密碼,系統要求他們放下。
有人可以向我解釋爲什麼當觸發else
時,這個循環爲什麼會無限循環?
此外,cin.ignore對char名稱的內存做了什麼?爲什麼80比20好?
AND,爲什麼隨機數不是隨機的?每次運行它時,數字都是一樣的。
非常感謝大家!
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char name[20];
int pwd, rand1, rand2;
for (int i=0;i<1; i++)
{
cout<<"Name: ";
cin.get(name, 20);
cin.ignore(80, '\n');
cout<<endl;
srand(rand() % 1000);
rand1 = (rand() % 21);
rand2 = (rand()%6);
cout<<"Password: "<<rand1<<"*"<<rand2<<"= ";
cin>>pwd;
if(pwd == rand1*rand2)
{
cout<<endl<<"Welcome to our main page, "<<name<<"."<<endl;
}
else
{
cout<<"Wrong password, type again." <<endl;
i--;
}
}
return 0;
}
如何提出一個問題?並且'rand'是隨機的,取決於正確播種它,例如當前時間。閱讀文檔中的一個例子。 –
如果我在幾個帖子中使用了幾個帖子,我覺得我會發送帖子區域。將它們放在一起會佔用較少的頭版空間。我在這裏是新的,並且...還不知道規則:D – user2714524
通過調用'srand()'用rand()的種子爲'rand()'生成發電機有點類似於期望在你買了晚餐之前把它拿出來,你不覺得嗎?這個'srand()'屬於'main()'調用的*的頂部,並且具有適當的種子('time(NULL)'是常見的,這是一個值得考慮的事情)。 – WhozCraig