读取以空格分隔的输入数字

2024-02-28

这可能是一个完全初学者的问题,但我还没有找到适合我的答案。

目前,我正在为一个类编写一个程序,它接受用户的输入(可以是一个或多个用空格分隔的数字),然后确定该数字是否是质数、完全数或都不是。如果数字是完美的,那么它将显示除数。

到目前为止,我已经编写了素数、完美数和列出除数的代码。我被困在程序的输入部分。我不知道如何让以空格分隔的输入一次一个地通过我的循环。

这是我当前的程序:

cout<<"Enter a number, or numbers separated by a space, between 1 and 1000."<<endl;
cin>>num;

while (divisor<=num)
    if(num%divisor==0)
    {
        cout<<divisor<<endl;
        total=total+divisor;
        divisor++;
    }
    else divisor++;
if(total==num*2)
    cout<<"The number you entered is perfect!"<<endl;
else cout<<"The number you entered is not perfect!"<<endl;


if(num==2||num==3||num==5||num==7)
    cout<<"The number you entered is prime!"<<endl;

else if(num%2==0||num%3==0||num%5==0||num%7==0)
    cout<<"The number you entered is not prime!"<<endl;
else cout<<"The number you entered is prime!"<<endl;

return 0;

它有效,但仅适用于单个号码。如果有人可以帮助我让它能够读取由空格分隔的多个输入,我将不胜感激。另外,顺便说一句,我不知道将输入多少个数字,所以我不能只为每个数字创建一个变量。这将是随机数量的数字。

Thanks!


默认情况下,cin从输入中读取并丢弃任何空格。所以,你所要做的就是使用 dowhile循环多次读取输入:

do {
   cout<<"Enter a number, or numbers separated by a space, between 1 and 1000."<<endl;
   cin >> num;

   // reset your variables

   // your function stuff (calculations)
}
while (true); // or some condition
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取以空格分隔的输入数字 的相关文章

随机推荐