C语言初学 请高手帮我解决下问题 谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/22 11:48:54
#include<stdio.h>
void main()
{
int a;
printf("输入今天星期几:");
scanf("%d",&a);
if((a<1)&&(a>7))
printf("请输入位于1-7之间的数\n");
if((a=6)||(a=7))
printf("周末愉快\n");
if(a<=5)
printf("工作日愉快\n");
}

要求输入1-5显示工作日愉快
输入6 7 显示周末愉快
输入的数字不在1-7之间显示 请输入位于1-7之间的数

我现在的问题是不管输入什么数字都是出现 周末愉快 请高手指导指导 谢谢了 纠正下我的错误在哪!

#include<stdio.h>
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<stdio.h>
void main()
{
int a;
a:
printf("输入今天星期几:");
scanf("%d",&a);
if((a<1)||(a>7)) //不是&&而是||,其中