#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("%d\n", 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;
}
答案 0 :(得分:6)
prod
未初始化。您需要将其初始化为1
答案 1 :(得分:2)
这可能不是唯一的问题,但prod
从未初始化,所以
prod = prod * arr[r][c];
总是会产生不可预测的结果。如其他答案中所述,您应该在声明时将其初始化为1.
int ... sum=0, prod=1, ...
答案 2 :(得分:1)
你没有初始化prod
,这意味着它可以是任何东西。在您的运行中它可能为零,并且因为任何时候零都为零,这就是您所获得的。
实际上,prod = prod * arr[r][c];
正在返回一些未知的东西。
您可能希望将prod
初始化为1,以便在计算产品时有一个起点。
答案 3 :(得分:1)
您尚未初始化prod
。将其初始化为1
int arr[2][2], r, c, sum=0, prod=1, sumD=0, count=0, count2=0, sumAveEven;
答案 4 :(得分:1)
您没有初始化prod
。大多数情况下,它将设置为0
...