华文杉 发表于 2021-5-24 12:53:30

判断大小结果乱码

废话不多说,先上图:
好吧图上不了,不知道为什么没法选择相册。那我就手打了。
我现实根据题目要求(编写一个c程序,运行时输入abc三个值,输出值最大者)打出了下面的代码:
#include<stdio.h>
int max(int x,int y)
{
    int z;
    if(x>y)z=x;
    else z=y;
    return z;
}
int main()
{
    int a,b,c,d;
    scanf("%d,%d,%d",&a,&b,&c);
    d=max(a,max(b,c));
    printf("max=%d\n",d);
    return 0;
}

然后我输入了1 2 3
输出:max=4200032
随后就更改了代码:
#include "stdio.h"
int main()
{
    int a,b,c,max;
    scanf("%d,%d,%d",&a,&b,&c);
    max=a;
    {if(b>a)max=b;}
    {if(c>a)max=c;}
    printf("max=%d",max);
}
同样是输入1 2 3
输出:max=4200000
使用编译器为vscode,装用了mingw和coderunner
在别的编译器也是出现了类似的问题,但是出现的乱码不同而已,之前完全按照课本上的方法编译了一下,但是(就这个而言)没问题,课本上是先引用函数,然后定义(但我不满足于一种方法)。
之前在编译另一个提的时候也是类似情况,区别是另一个提使用的课本上的办法,在此就不举例了,希望有鱼油大佬解答,谢谢!

万千只cnm 发表于 2021-5-24 13:41:27

scanf ,去掉 !
要么就 输入的时候也用,隔开      
书写的时候符号最好与数字隔开 方便阅读

tian1234 发表于 2021-5-24 13:53:40

scanf用的时候引号里面不能加符号啥的,直接%d%d%d就行

华文杉 发表于 2021-5-24 15:49:27

tian1234 发表于 2021-5-24 13:53
scanf用的时候引号里面不能加符号啥的,直接%d%d%d就行

非常感谢!
页: [1]
查看完整版本: 判断大小结果乱码