光着屁股的犀牛 发表于 2020-3-18 18:37:18

新手请教,为啥我的b赋值不上

为啥我输入2.3,4.1进去,a能赋值2,但是b赋值的结果是个乱码,我理解不了,想请教一下
int sum (int x,int y)
{
        int z;
        z = x+y;
        return z;
}
#include <stdio.h>
int main()
{
        int a,b,w;
        printf ("please input two number :\n");
        scanf ("%d,%d",&a,&b);
        w = sum(a,b);
        printf ("the overall number is %d\n",w);
        return 0;
}

qiuyouzhi 发表于 2020-3-18 18:41:35

本帖最后由 qiuyouzhi 于 2020-3-18 20:18 编辑

scanf里面最好不加标点符号,除非你输入的时候也加上

4goodworld 发表于 2020-3-18 18:42:03

你定义的是 int型,输入的是浮点型,能不出问题吗?

/可爱多 发表于 2020-3-18 19:31:07

int为整型,如果要输入浮点型需改为float

sunrise085 发表于 2020-3-18 20:08:02

本帖最后由 sunrise085 于 2020-3-18 20:16 编辑

scanf函数读取键盘输入,格式化内容要和输入内容一致,你写的scanf("%d,%d",&a,&b);中间是以逗号隔开的,就输入第一个整数后就要输入一个逗号,否则就会出错。
一般情况下scanf内除了格式化操作符以外,不加任何符号,连空格都不要加
你可以看看我之前回答的一个有关scanf的帖子
之前回答的一个帖子

sunrise085 发表于 2020-3-18 20:09:22

qiuyouzhi 发表于 2020-3-18 18:41
scanf里面不能加任何的标点符号,除了格式化操作符

不是不能加任何标点符号,而是慎重加。输入的内容和scanf内的内容一致即可。
回答问题前,请先搞清楚知识点,不要误导人
页: [1]
查看完整版本: 新手请教,为啥我的b赋值不上