我的这个程序的目标是从用户那里获取值'y'的输入,然后将该值乘以0,1,2,3,4,5,6,7,8,9,然后打印10个结果。现在,当用户输入'y'的值时,程序只返回一个零列表。知道我做错了吗?
#include <iostream>
using namespace std;
int main(){
int x;
int y;
int z;
x = 0;
z = x * y;
cout << "enter y" << endl;
cin >> y;
while (x < 10) {
cout << z << endl;
x = x + 1;
}
}
答案 0 :(得分:0)
你遇到的问题是你实际上并没有在循环中计算z
,所以它总是你在循环外计算的值。陈述和表达不能追溯地完成。
但是你的问题比这更糟糕,因为你在初始化它之前使用y
,这会导致未定义的行为。
答案 1 :(得分:0)
你需要在计算应该在循环中的z之前改变y输入的位置
答案 2 :(得分:0)
语句z = x * y应该在你的while循环中,以使其工作。 现在发生的是,每次打印z的相同值,最初计算为x(即0)和y(这是一些垃圾值,因为它尚未初始化)给0
答案 3 :(得分:0)
代码中出现的第一个问题是尝试通过将x与y相乘来分配z,但是y未分配给某个值=&gt;错误!这意味着您应该在分配z之前获得用户输入。
你可能想知道为什么你得到十个'0'的输出:在循环内你只打印分配给z的值给控制台但是z之前已经分配了,并且在重复期间没有改变。
#include <iostream>
using namespace std;
int main(){
int x;
int y;
int z;
x = 0;
z = x * y; // y is never assigned to a value
cout << "enter y" << endl;
cin >> y; // y got assigned here!
while (x < 10) {
cout << z << endl; // z stays the same in the loop
x = x + 1;
}
}