运行不了
#include <stdio.h>#include <math.h>
int main()
{
int a;
do{
scanf("%d ",&a);
int sum = 0;
if(a>0&&a%2==0)
sum += a;
int b = 0;
b = ++b;
}while(b<6);
printf("%d",sum);
return 0;
}
问题在于变量b的作用域问题。在do-while循环中,变量b的定义和初始化在循环体内部,而循环条件判断的时候,变量b已经超出了作用域。因此,编译器会报错,提示变量b未定义。
要解决这个问题,可以将变量b的定义和初始化放在循环体外部,这样就可以在循环条件判断的时候使用变量b了。修改后的代码如下所示:
#include <stdio.h>
#include <math.h>
int main() {
int a;
int b = 0; // 将变量b的定义和初始化放在循环体外部
int sum = 0; // 将变量sum的定义和初始化放在循环体外部
do {
scanf("%d", &a);
if (a > 0 && a % 2 == 0) {
sum += a;
}
b = ++b;
} while (b < 6);
printf("%d", sum);
return 0;
}
这样修改之后,代码就可以正确运行了。
页:
[1]