计算整数对时出现不可预测的结果

时间:2019-04-26 16:11:06

标签: c

程序的任务是计算两个连续整数的值超过40的次数。因此,这里的问题是程序的结果是错误的。

为解决此问题,我尝试更改一些初始值并调查代码的机制,但我没有发现任何错误。代码如下。

#include <stdio.h>
int main() {

    int a,i,e=0;
    int A[31];
    for(i=0; i<=30; i++) {
        scanf("%d",&a);
        A[i]=a;
}
    if (A[i]>40 && A[i+1]>40) {
        e=e+1;
    }
    printf("%d",e); 

    return 0;
}

如果我们在矩阵的所有31个位置中输入整数41,则预期结果为30,而结果始终为零(0)

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

“ if语句”必须在循环中。 并且,请注意第二个循环的条件,我将其设置为“ <30”而不是“ <= 30”,因为您的程序希望将下一个变量一起比较为“ if(A [i]> 40 && A [i + 1]> 40)”。

SolutionPivotTreeView