C语言求两个数的最大值

求两个数之中的最大值
这个程序为什么用VC2010学习版输出的永远只是输入的第一个值?我调试的时候不知道为什么第二个值永远输入不进去

img

以下是代码:


```#include<stdio.h>
main()
{
    int a,b,max;
    scanf("%d,%d",&a,&b);
    if(a>=b)
        max=a;
    else
        max=b;
    printf("max=%d\n",max);
}

你怎么输入的,是两个数字之间英文半角的逗号么?
是不是没有输入逗号,或者输入了中文的逗号。

两个数的输入是怎样的?

你把scanf里的逗号去掉试试,或者用以下代码:


#include<stdio.h>
int main()
{
    int a,b,maxn=0;
    scanf("%d%d",&a,&b);
    if(maxn<a) maxn=a;
    if(maxn<b) maxn=b;
    printf("max=%d\n",maxn);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7513637
  • 这篇博客也不错, 你可以看下C语言中用二维数组定义的字符串数组与用指针数组定义的字符串数组的解析与归纳
  • 您还可以看一下 张勇老师的初级到CS开发高手通用权限管理系统全程实录课程中的 利用委托刷新上级窗体内容小节, 巩固相关知识点
  • 除此之外, 这篇博客: 【C语言进阶深度学习记录】二十 结构体大小计算与结构体内存布局的详细方法中的 1 什么是内存对齐? 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    这段代码的问题在于 scanf 函数中使用的格式化字符串 %d,%d。这里的逗号应该被去除,因为在输入时,我们只需要输入两个整数,不需要输入逗号。

    修改后的代码如下:

    #include <stdio.h>
    
    int main()
    {
        int a, b, max;
        scanf("%d %d", &a, &b); // 去除逗号
        if (a >= b)
            max = a;
        else
            max = b;
        printf("max=%d\n", max);
    }
    

    现在,代码不再使用逗号作为输入分隔符,因此可以正常接受两个整数输入,并输出其中较大的一个。

    调试过程中,可以使用以下方法来定位问题:

    1. 打开 Visual Studio 2010 学习版并载入代码。
    2. 设置断点:在 scanf 之前和 printf 之前设置断点。这将允许我们查看变量值和程序执行流程。
    3. 启动调试:点击“开始调试”按钮或按下 F5 键启动调试。
    4. 单步调试:通过使用“逐语句”、“逐过程”或“逐过程(跳出函数)”等调试选项,逐行执行代码。这允许我们观察每行代码的执行情况和变量值的变化。
    5. 观察输入和输出:当程序执行到 scanf 语句时,输入两个整数并注意变量 ab 的值是否正确。当程序执行到 printf 语句时,观察输出的结果是否符合预期。
    6. 检查变量值:如果步骤 5 中的输入和输出不正确,可以使用“自动”、“局部”、“监视”等窗口查看变量的值,以便确定输入和输出的问题所在。
    7. 回顾代码:仔细检查代码中的语法和逻辑错误,确保没有其他方面的问题。

    通过以上步骤,您应该能够发现并解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^