|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#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;
- }
复制代码
这样修改之后,代码就可以正确运行了。
|
|