我本来想赋值a为1或2.3.4.5,则b为5.4.3.2.1,可为什么输出不对
注意,if判断里面,是==不是=
因为你执行完scanf之后立刻就输出了,a的值改变之后,并没有任何操作就输出b,b只能是默认的值。
调整一下代码顺序,将你那一堆if语句,放在scanf那句话后面。
if(a=5)这个if语句中,重新对a赋值了,而不是判断当前a的值为多少,最后不管a的值输入多少,最后a=1,b=5;
修改为:
if(a==5)//==判断a的值是否等于5,条件满足则进入b=1
b=1;
else if(a==4)
b=2;
【以下回答由 GPT 生成】
问题原因是代码中的变量a没有被赋初值就被使用,导致a的值是随机的,可能是0或其他值。因此,代码中的所有if语句均不会执行,b的值保持未初始化的状态。
解决这个问题的方法是,在使用变量a之前,先给它赋一个初始值,例如将int a;
修改为int a = 0;
。
修改后的代码如下所示:
#include <stdio.h>
int main() {
int a = 0, b;
if (a == 5) {
b = 1;
}
if (a == 4) {
b = 2;
}
if (a == 3) {
b = 3;
}
if (a == 2) {
b = 4;
}
if (a == 1) {
b = 5;
}
printf("请输入a的值:");
scanf("%d", &a);
printf("则输出b的值:%d\n", b);
return 0;
}
现在,当你输入a的值后,b的值将根据条件语句进行赋值,并输出正确的结果。
【相关推荐】