迷砖00 发表于 2021-1-14 18:30:09

C语言

麻烦给看看哪里不对,谢谢了{:10_254:}

给你三个ASCII字符(不含空白字符:包括空格、制表符\t、回车换行符\n),找出其中最大的那个
#include<stdio.h>
char max(char ch1,char ch2)
{
        if(ch1<ch2)
        return ch2;
        else
        return ch1;
}
int main()
{
        char ch1,ch2,ch3,ch4;
        scanf("%c%c%c",&ch1,&ch2,&ch3);
        ch4=max(max(ch1,ch2),ch3);
        printf("%c",ch4);
       
        return 0;
}

昨非 发表于 2021-1-14 18:39:41

换个函数名,避开max这些现有的东西
测试了下好像没问题了
#include<stdio.h>
char my_max(char ch1, char ch2)
{
        if (ch1 < ch2)
                return ch2;
        else
                return ch1;
}
int main()
{
        char ch1, ch2, ch3, ch4;
        scanf("%c%c%c", &ch1, &ch2, &ch3);
        ch4 = my_max(my_max(ch1, ch2), ch3);
        printf("%c", ch4);

        return 0;
}

迷砖00 发表于 2021-1-14 19:05:24

昨非 发表于 2021-1-14 18:39
换个函数名,避开max这些现有的东西
测试了下好像没问题了

可是我这边还是不对,输入a,b,c它得出的结果是b,难道是编辑器的问题???

昨非 发表于 2021-1-14 19:06:50

迷砖00 发表于 2021-1-14 19:05
可是我这边还是不对,输入a,b,c它得出的结果是b,难道是编辑器的问题???

看清你的格式串,"%c%c%c"
里面没有间隔,你输入的时候也不能有间隔

昨非 发表于 2021-1-14 19:14:08

      scanf("%c,%c,%c", &ch1, &ch2, &ch3);
按你原先的输入方式,第十二行改成这样就好了

迷砖00 发表于 2021-1-14 19:41:44

昨非 发表于 2021-1-14 19:14
按你原先的输入方式,第十二行改成这样就好了

好的,谢谢了
页: [1]
查看完整版本: C语言