
//奇数的积
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
int n,a[1000],s;
while(scanf("%d",&n) !=EOF)
{
s=1;
for (int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int j=0;j<n;j++){
if(a[j]%2==1){
s*=a[j];
}
else continue;
}
printf("%d\n",s);
}
return 0;
}
调试报告:
1.又忘记了 for 循环内部要用分号隔开
2.原来 else continue 后面也要加上分号
讲析:
虽然我还没有系统学C++,但是根据我的PYTHON经验来看这里应该用到了列表,定义函数时定义为整型应为元素的类型,并且要声明列表的大小(a[1000]),有的同学可能像我一样看到这个题懵了,别怕,慢慢来,这不我就成功了嘛,创建了一个列表后我们利用 for 循环依次填入相应数目的整型元素,再依次判断进行条件运算,注意下标是从0到n-1
细节错误:
//奇数的积
#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main()
{
int n,a[1000],s=1;
while(scanf("%d",&n) !=EOF)
{
for (int i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(int j=0;j<n;j++){
if(a[j]%2==1){
s*=a[j];
}
else continue;
}
printf("%d\n",s);
}
return 0;
}
看看输出会让我们想到什么:

有思路了吧?哈哈哈我们错误地将 s=1 放在了输入 n 的前面,造成每次输入 n 时它的值还是上次计算的结果,所以注意一定要每次更新 n 的值啊!
补充:
判断等于:==(区分赋值号 = )
判断不等于:!=
本文讲述了如何使用C++编程解决一个计算数组中奇数之积的问题,包括代码中出现的错误如忘记分号和语句顺序,以及如何修正并理解列表操作在C++中的应用。重点讲解了初始化变量、输入处理和条件判断的正确用法。
2109





