注册 登录
编程论坛 C语言论坛

新手再次遇到问题请教大侠

BlueTom 发布于 2020-05-28 18:55, 1974 次点击
刚开始学习C语言,遇到不少问题,今天又遇到了:

输入123判断是不是小明的学号,输入456判断是不是小华的学号。如果输入的都不是这两个数字,就输出“这既不是小明的,也不是小华的学号。”

于是我弄了一下代码,但是在运行的时候,无论我输入多少,都只显示小明de学号。请问是哪里有错误?

#include<stdio.h>
#include<stdlib.h>
int main( )
{
      int a;
      printf("看看是不是小明的学号:");
      scanf("%d", &a);
      if (a=123)
         {
             printf("对,这是小明的学号。\n");
          }
        else if (a=456)
          {
             printf("这是小华的学号。\n");
           }
            else
           {
              printf("这既不是小明的,也不是小华的学号。\n");
            }         
             system("pause");
             return 0;
      }
3 回复
#2
rjsp2020-05-28 19:03
if (a=123)
改为 if( a == 123 )
下同
#3
kangaroo12122020-05-28 19:44
2楼说的对,你代码里用的是赋值运算符,不是比较运算符的等号。所以也不是一定会输出小明的学号,你要是输入0,结果就会输出“这既不是小明的,也不是小华的学号”。
#4
BlueTom2020-05-31 19:40
回复 2楼 rjsp
谢谢。
1