逻辑错误

#include<stdio.h>
int main(int argc, const char *argv[])
{
int i;
int j;
for(i=1;i<=6;i++)
{

for(j=1;i<=j&&j<=11;j++)

当程序运行到i=2时,第一次做判断时,2>1,这个条件不符合,就会直接跳出循环体,而不会说,再运行一遍,此时j=2,又可以满足条件了。

因为当第一次条件不符合时,就会跳出循环体,而不会再次运行,即使再次运行符合条件,因为已经跳出循环体,所以不会执行。



{
printf("_");
}

for(j=0;i>j&&j<=11;j++)
{
printf("F");
}
printf("\n");
}
return 0;

}




赋值错误

#include<stdio.h>
int main(int argc, const char *argv[])
{
int a;
printf("please input");
scanf("%d",&a);

当此时我们在键盘上输入了一个数字96


if(a>90)
{
a=1;
}

进入这个条件,而此时又将1赋值给a



if(a>60&&a<90)
{
a=2;
}

switch(a)//swith后面要跟的是一个变量后者表达式,此时不能说a因为在前面被赋值了,它就不是一个变量了。因为字符的表达形式是‘a’,而这里没有加上单引号

所以,还是一个变量a,而switch后面必须要加的就是变量a,而不能加字符a,字符‘a’是作为一个常量出现的。


而这时下面的判断就是对已经赋的值1,2,3进行判断,所以成绩无论是多少,这是得到的判断数据都是1,2,3

而不再是对输入的数据进行判断了

如果想使用一个变量,代替原来的变量进行判断

应该是再定义一个变量,而不是使用原变量,在判断语句里,令b=2,接着switch里判断b的值即可

{
case 1://而case后面必须要加的是整型常量,包括整形数据,以及字符型常量‘a’,注意:如果此时是字符型接在case后面,应该是case'a',而不是case a,因为case后面必须跟常量。
printf("A");
break;
case 2:
printf("B");
break;
default:
printf:("wrong");

猜你喜欢

转载自blog.csdn.net/chengchaonan/article/details/79490841