#include
void main()
{
int a;
printf("输入今天星期几:");
scanf("%d",&a);
if((a<1)||(a>7)) \\这里用"||"表示有一个为真都执行\\
{printf("请输入位于1-7之间的数:\n");
scanf("%d",&a);} \\这里应重新输入\\
if((a==6)||(a==7)) \\这里用"=="表示相等\\
printf("周末愉快\n");
if(a<=5)
printf("工作日愉快\n");
}
程序运行过了!
应该是a==6或者a==7吧,两个等号。一个等号是赋值,(a=6)的值等于6,判断为非0,就认为是符合条件的。
if((a=6)||(a=7)) 应该是if((a==6)||(a==7))
if((a=6)||(a=7)) 要改成if((a==6)||(a==7))。
c语言中单等号是赋值的意思,双等号才是判断两者的逻辑关系的。
把if((a=6)||(a=7))改写成为
if((a==6)||(a==7))
“=”是赋值号来的,“==”才是等号,初学者经常发生的错误。
程序改成下面这样就OK了
#include
void main()
{
int a;
a:
printf("输入今天星期几:");
scanf("%d",&a);
if((a<1)||(a>7)) //不是&&而是||,其中一个就执行
{
printf("请输入位于1-7之间的数\n");
goto a;
}
if((a==6)||(a==7)) //等于号不是=而是==,=是赋值
printf("周末愉快\n");
if(a<=5)
printf("工作日愉快\n");
}