【发布时间】:2019-11-04 16:08:24
【问题描述】:
我编写的代码有一个选项,其中用户输入一些数字和其他选项,将用户的两个数字相乘,所有这些数字都是在 2 种情况下生成的,但我出错了。我对编程完全陌生,只是为了清除。
struct proizvod
{
char materijal;
int k; // kolicina
int c; // cijena
};
int main()
{
int izbor;
cout << endl
<< " 1 - Unos podataka.\n"
<< " 2 - Rezultat.\n"
<< " 3 - Izlaz.\n"
<< " Unesi broj i pritisni enter: ";
cin >> izbor;
switch(izbor)
{
proizvod p;
case 1:
cout << "\nUnesite ime proizvoda: ";
cin.get(p.materijal);
cout << "\nUnesite kolicinu proizvoda: ";
cin >> p.k;
cout << "\nUnesite cijenu proizvoda: ";
cin >> p.c;
break;
case 2:
int r;
r = p.k * p.c; // multiply
while (izbor!= 3);
}
return 0;
}
编辑
错误 C2086 'int r':重新定义 ConsoleApplication1
【问题讨论】:
-
这是一个警告而不是错误。
r = p.k * p.c;如果您选择案例 2,那么您将乘以未初始化的变量。 -
您应该学习编程基础知识:流程、循环等。这不是您的代码中可以修复的单个问题,整个流程是不正确的。
-
如果用户输入 2,那么您执行“案例 2”并且您执行
p.k * p.c但 p 未初始化,因此行为未定义。while (izbor!= 3);也会循环 forrever 因为 izbor 值 2 并且不能变成 3 -
@oblivion 你在
while (izbor!= 3)之前没有初始化过 izbor,行为是未定义的,并且你没有解决最初的问题 -
非常感谢!我很感激 !! @oblivion
标签: c++