gpt4 book ai didi

c++ - 如何使用当前时间为随机数生成器播种、显示标题并将随机出生日期分配给 X 数量的人 (C++)

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:18 25 4
gpt4 key购买 nike

我正在做一项作业,我必须创建一个程序:

  1. 询问用户的姓名
  2. 提示用户选择# of voters
  3. 存储用户输入的值
  4. 如果用户输入负数或字符则报告错误
  5. 将当前时间作为随机数生成器的种子
  6. 显示标题for (voterCount = 0; voterCount < numVoters; voter++)

  7. 使用随机数生成器来:

    生成 bYear(限制在 1900 到 2000 之间)

    生成 bMonth

    生成 bDay(限制 1 和 31)

我有前 4 个:

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

int main()
{

int numVoters;
char name[35]; // Variable that stores "Name" of user added max char to be 25
const int MIN_MONTH = 1;
const int MAX_MONTH = 12;
int bMonth;


cout << "Please enter your first name: ";
cin.getline(name,35); // used getline because without getline I kept getting a single char

cout << "Hello " << name << endl;
cout << "Please enter amount of voters: ";
cin >> numVoters;
while (numVoters > 0)
{
cout << "You entered: " <<numVoters << endl;
}
cout << "ERROR! ERROR! WRONG DATA TYPE PLEASE RUN THE PROGRAM
AGAIN";

return 0;

}

我不知道下一步该做什么我试图继续使用我在网上看到的内容,但是当我这样做时,我得到了一个永无止境的选民数量循环

#include < iostream > 
#include < cstdlib >
#include < time.h >

using namespace std;

int main() {

int numVoters;
char name[35]; // Variable that stores "Name" of user added max char to be 25
const int MIN_MONTH = 1;
const int MAX_MONTH = 12;
int bMonth;

cout << "Please enter your first name: ";
cin.getline(name, 35); // used getline because without getline I kept getting a single char

cout << "Hello " << name << endl;
cout << "Please enter amount of voters: ";
cin >> numVoters;
while (numVoters > 0) {
cout << "You entered: " << numVoters << endl;
}
cout << "ERROR! ERROR! WRONG DATA TYPE PLEASE RUN THE PROGRAM AGAIN";

unsigned seed = time(0); // gets current computer time
srand(seed); // seeds the random number gen

for (numVoters = 0; numVoters < 0; numVoters++)

{

bMonth = rand() % (MAX_MONTH - MIN_MONTH + 1) + MIN_MONTH;
cout << "Random month: " << bMonth << endl;
}
return 0;

}

帮助#5-7

Algorithm.

最佳答案

while (numVoters > 0)
{
cout << "You entered: " <<numVoters << endl;
}
cout << "ERROR! ERROR! WRONG DATA TYPE PLEASE RUN THE PROGRAM
AGAIN";

上面的代码说的是,只要 numVoters 大于 0,就不停地输出 numVoters。你需要的是 if else语句,正如你想说的,如果投票人数大于0,输出投票人数,继续做任务5,6,7。否则,你要输出error。在伪代码中:

if (numVoters > 0) {
output numVoters
do tasks 5,6,7
}
else {
output error
return 0
}

或者如果 numVoters 等于或小于 0,您可以输出错误并退出程序。将任务 5、6、7 的代码放在 if 循环之后,这样只有在没有错误的情况下才会执行:

if (numVoters =< 0) { 
output error
return 0
}
//code for 5,6,7 after and outside of the if loop

还有 (voterCount = 0; voterCount < numVoters; voter++) , 在我看来是 (int voterCount = 0; voterCount < numVoters; voterCount++) .

一般来说,我认为您误解了 while 和 for 循环。您应该仔细阅读它们以了解哪里出了问题。

关于c++ - 如何使用当前时间为随机数生成器播种、显示标题并将随机出生日期分配给 X 数量的人 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54996405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com