学编程的为者 发表于 2022-2-25 11:05:35

简单的if语句输出问题

#include <stdio.h>
int main()
{
    int a;
    scanf("%lf",&a);//使用lf,始终只执行else语句,换成%d,或者%f就可以了
    if(a>90)
      printf("w的名字是\n");
    else
      printf("w不告诉你名字\n");
    return 0;
}
不是很明白为什么
请教一下关于定义数字变量有哪几种,有什么区别(就好像%d,%lf,%f)

大马强 发表于 2022-2-25 11:15:42

本帖最后由 大马强 于 2022-2-25 11:16 编辑

不同数据对应的格式化符是不一样的,常用搭配为
int        %d
char        %c
float        %f
double %lf

在printf函数中 float 可以用 %lf ,double 也可以用 %f
但是在scanf函数中double只能搭配 %lf, 搭配不对的话可能导致不会为变量赋值,该题中导致a并未赋值上,即为0

yzzc 发表于 2022-2-25 12:17:22

scanf是格式输入语句
int对应          %d
long对应       %ld
float对应       %f
double对应    %lf
char对应      %c
……
格式输入语句,里面是什么格式就用什么格式,否则输入的数可能会出错

学编程的为者 发表于 2022-2-25 21:04:46

大马强 发表于 2022-2-25 11:15
不同数据对应的格式化符是不一样的,常用搭配为
int        %d
char        %c


谢谢啦

学编程的为者 发表于 2022-2-25 21:06:01

yzzc 发表于 2022-2-25 12:17
scanf是格式输入语句
int对应          %d
long对应       %ld


谢谢啦
页: [1]
查看完整版本: 简单的if语句输出问题