到目前为止我有这个代码,它应该一直询问用户输入一个数字,直到他们输入0为止。然后程序会告诉用户他们键入了多少赔率和平均值。我不能让后一个功能正常工作。有小费吗?我是初学者,所以请没有先进的方法来解决这个问题:D
#include <iostream>
using namespace std;
int main ()
{
int n;
int myCounter1, myCounter2;
cout << "Odds and Evens\n\n" << endl;
do
{
cout << "Please enter an integer: ";
cin >> n;
myCounter1 = 0;
myCounter2 = 0;
if (n%2 == 0)
{
myCounter1++;
}
else
{
myCounter2++;
}
}
while (n!=0);
cout << "You entered " << myCounter1 << " even numbers, and " << myCounter2 << "odd numbers " << endl;
return 0;
}
答案 0 :(得分:1)
此
Role name | Attributes |
-----------+------------------------------------------------+
jacobcrofts| Superuser, Create role, Create DB, Replication |
应该是
else n == 0
{
myCounter2++;
}
老实说,我甚至不知道为什么它没有引起你的注意,因为它无法编译。
此外,您不应在循环中将计数器设置为零。所以
else
{
myCounter2++;
}
应该是
int myCounter1, myCounter2;
cout << "Odds and Evens\n\n" << endl;
do
{
cout << "Please enter an integer: ";
cin >> n;
myCounter1 = 0;
myCounter2 = 0;
最后,因为您可能不应该将0计算为输入的整数之一...
int myCounter1=0, myCounter2=0;
cout << "Odds and Evens\n\n" << endl;
do
{
cout << "Please enter an integer: ";
cin >> n;
答案 1 :(得分:1)
一些事情:
代码缩进(或缺少代码缩进)使得这很难阅读。缩进不仅是装饰性的,而且可以帮助理解代码。
每次循环运行时,您都将计数器变量设置为零。在循环之外声明它们,以便它们保留它们的值。
dl = []
for i in gr2.Segment.tolist():
l = len(i[0])
r = len(i[1])
dl.append(l)
语句的else
子句具有错误的语法。请使用简单的if
,因为else
的奇偶校验只有两种情况。
当用户键入n
退出循环时,它也被视为偶数整数。在0
语句中添加条件以解决此问题。
应用这些更改会产生以下代码:
if
答案 2 :(得分:0)
您有2个错误和1个语法错误。
行:else n == 0
应该只是else
2个错误与您的计数器有关: 1)您必须从计数器中排除0输入。
2)每次读数时,你都将它们(计数器)设置为零,这意味着你总是以零和一结束。
答案 3 :(得分:-1)
这是任何有兴趣的人:
使用namespace std;
int main() {
int n;
int myCounter1 = 0;
int myCounter2 = 0;
cout << "Odds and Evens\n\n" << endl;
do
{
cout << "Please enter an integer: ";
cin >> n;
if (n%2 == 0)
{
myCounter1++;
}
else
{
myCounter2++;
}
}
while (n!=0);
cout << "You entered " << myCounter2 << " odd numbers, and " << myCounter1-1 << " even numbers " << endl;
返回0; }