Husing 发表于 2020-10-12 10:32:58

求助,以下代码无论输入什么数,结果都是50

本帖最后由 Husing 于 2020-10-12 10:39 编辑

#include <stdio.h>
int main()
{
        int x, y, z, a;
        printf("输入三个数:");
        scanf("%d %d %d", &x, &y, &z);
        if (x>y) a=x;
        else a=y;
        if (z>a) printf("较大值为%d", z);
        else printf("较大值为%d", a);
        return 0;
}

sunrise085 发表于 2020-10-12 10:43:27

不是卡住了。是你的程序有问题
scanf是该给出变量的地址,你给的是变量名
#include<stdio.h>
int main()
{
    int x, y, z, a;
    printf("输入三个数:");
    scanf("%d %d %d", &x,&y, &z);//这里给变量地址,需要加&符号
    if (x>y)
      a=x;
    else
      a=y;
    if (z>a)
      printf("较大值为%d", z);
    else
      printf("较大值为%d", a);
    return 0;
}

sunrise085 发表于 2020-10-12 11:01:53

本帖最后由 sunrise085 于 2020-10-12 11:03 编辑

哎,第一次回答你的这个帖子的时候,帖子不是这样在的啊。。。现在的错误也和之前不一样了。。
估计是你输入与scanf的格式不一样吧
你再scanf之后printf打印一下xyz的值,看一下
scanf使用要注意,一般不在格式化字符之间添加任何字符,scanf默认是以空白符(空格、Tab、回车)作为多个变量(%c除外)之间的分隔符。
你的程序中scanf内三个%d之间都有空格,你输入的时候是否输入空格了?
页: [1]
查看完整版本: 求助,以下代码无论输入什么数,结果都是50