【发布时间】:2020-07-13 17:05:51
【问题描述】:
这里只是一个简单的问题。我正在尝试检查输入验证的负值,我希望我的程序只接受用户输入的正值,这是我的代码。
//loop to array.
for(int i = 0; i < 3; i++) //loop to row first
{
//take in input into data.
for(int j = 0; j < 5; j++) //loop to column
{
//take input data.
cout <<"Monkey " << i+1 <<" ";
cout <<"Day " << j +1 << ":";
cin >> pound_food[i][j];
if(pound_food[i][j] < 0)
{
cout <<"Invalid number, number can't be negative, please try again\n";
break;
}
}
当他们找到负数时,我尝试打破循环或继续,但是即使我不希望将负数存储在数组中,它也会继续存储数字。我只希望它只存储正整数并重新提示用户再次输入数字。不知道为什么,希望听听大家的意见!
【问题讨论】:
-
您将数字存储在数组中,然后检查符号。
-
cin >> pound_food[i][j];-- 是不是有点太晚了,因为你已经用你不想存储的值弄乱了二维数组?如何将输入存储在一个临时变量中,检查它,如果没问题,然后将它存储在二维数组中? -
啊我试试看,谢谢你的建议!
-
我是关于临时变量的代码,然后我看到了 Paul 的评论 :) 无论如何,@ Verax11 如果你喜欢人们的回答,你可以给他们投票,选择其中一个作为真正的答案等。