伙计们帮忙,我有一个问题,在得到所有奇数的乘积,每当我输入1,3,2,2,所有奇数的乘积是0,它不执行1*3 =3…你能指出原因吗?提前感谢……
#include <stdio.h>
#include <conio.h>
int main()
{
int arr[2][2], r, c, sum=0, prod, sumD=0, count=0, count2=0, sumAveEven;
for (r=0; r < 2; r++)
{
for (c=0; c < 2; c++)
{
printf("Enter Numbers: ");
scanf("%d", &arr[r][c]);
if(r==c)
{
sumD = sumD + arr[r][c]; //sum of diagonal pattern
}
if(arr[r][c]%2==0)
{
sum = sum + arr[r][c]; //sum ofeven nums
count= count +1;
sumAveEven = sum / count;
}
else //(arr[r][c]%2 !=0)
{
prod = prod * arr[r][c]; //prod of odd nums
}
//printf("%d ", arr[r][c]);
}
// printf("%dn", sum);
}
printf("The Sum of All Even Numbers is: %d n", sum);
printf("The AVERAGE of All Even Numbers is: %d n", sumAveEven);
printf("The product of All Odd Numbers is: %d n", prod);
printf("The Sum of Elements in pattern Diagonal is: %d n", sumD);
//printf("Counter: %d n", count);
getch();
return 0;
}
prod
未初始化。您需要将其初始化为1
这可能不是唯一的问题,但prod
从未初始化,所以
prod = prod * arr[r][c];
总是会给出不可预测的结果。正如在其他答案中所指出的,在声明它时应该将其初始化为1。
int ... sum=0, prod=1, ...
您没有初始化prod
,这意味着它可以是任何东西。在你的运行中,它可能是零,因为任何乘以零的东西都是零,这就是你得到的结果。
实际上,prod = prod * arr[r][c];
返回的是未知的东西。
看起来你可能想要初始化prod
为1,这样你在计算产品时就有了一个起点。
您没有初始化prod
。初始化为1
int arr[2][2], r, c, sum=0, prod=1, sumD=0, count=0, count2=0, sumAveEven;
您没有初始化prod
。大多数情况下,它将被设置为0
…