为什么输入数字后按回车无事发生
#include
using namespace std;
int main()
{
int i, n, k = 0;
int a[100], t[100];
cout << "please input numbers:";
for (i = 0; i < 100; i++) {
cin >> a[i];
k++;
if (a[i] == 0)
break;
}
for (i = 0, t[i] = 0; i < k; i++) {
while (a[i] =! 1) {
if (a[i] % 2 == 0) {
a[i] = a[i] / 2;
}
else {
a[i] = (a[i] * 3 + 1) / 2;
}
t[i]++;
}cout << t[i] << endl;
}return 0;
}
15行只对t[0]初始化了 ,其它没有初始化,
第7行改成 int a[100]={0}, t[100]={0};
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在这段代码中,当你输入数字并按回车键时,数字会被存储在 a 数组中。但是,如果你输入的数字是 0 或者负数,循环会停止,并且数组 a 中剩余的元素将保持默认值 0,因此在这种情况下,程序会在循环中打印出多个 0。
-
另外,循环中的条件 while (a[i] =! 1) 也存在错误。应该使用 while (a[i] != 1) 来检查当前数字是否等于 1,否则循环将陷入死循环并导致程序崩溃。