我需要编写一个程序,打印出1到15之间所有奇数整数的乘积。无论我尝试什么,它都行不通,只打印产品。我搞砸了if声明吗?这是我的代码:
//Sophia Ali
#include <iostream>
using namespace std;
int main()
{
int i;
int product;
for ( i = 1; i <=15; i+=2)
{
if(i%2!=0)
product = product * i;
else
continue;
}
cout << "\n product: " << product;
return 0;
}
答案 0 :(得分:5)
首先,您不初始化product
,这意味着您最终会遇到未定义的行为。您可能希望将其初始化为1
:
int product = 1;
此外,循环中的if
条件总是为真,因为无论如何你在每次迭代时将i
增加2,所以它没有用处:
for ( i = 1; i <=15; i+=2)
{
product = product * i;
}
答案 1 :(得分:0)
初始化product
:
product = 1;
选择其中一个
for (i = 1; i <=15; i++)
{
if(i%2 != 0)
product *= i;
}
或
for (i = 1; i <=15; i+=2)
{
product *= i;
}
答案 2 :(得分:0)
C ++没有为你定义任何东西。所以当你在main函数的第二行声明int product;
时,你应该使用int product = 1;
。否则,当您在for循环中使用product = product * i
时,您要将不存在的数字乘以i,这是不可能的。