首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >程序需要显示首位数字较大的变量

程序需要显示首位数字较大的变量
EN

Stack Overflow用户
提问于 2020-12-18 04:15:30
回答 3查看 52关注 0票数 0

程序需要显示一个第一个数字更大的数字,只有在两个变量的数字相同的情况下才有效。尝试用这些数字4506 29985,它应该显示4506,但程序显示29985,程序是用C语言编写的。

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>

int disassembly1 (int a) 
{
    while (a>=10) 
    {
        a /= 10;
    }

    return a;
}

int disassembly2 (int b) 
{
    while (b>=10) 
    {
        b /= 10;
    }

    return b;
}

int main ()
{
    int A1, B1, a, b;

    printf("Int 2 numbers:\n");
    scanf_s("%d %d", &A1, &B1);

    a = A1;
    b = B1;

    disassembly1(A1);
    disassembly2(B1);

    if (a > b || ((a == b) && (A1 > B1)))
        printf("%d\n", A1);
    else
        printf("%d\n", B1);

    system("pause");
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-18 04:24:25

首先,disassembly1disassembly2是同一个函数,不应该写两次。

其次,也是更重要的是,函数disassembly返回第一个数字,但您需要将其存储在一个变量中。

一个可以工作的代码(有几处改动):

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
int disassembly(int a) 
{
    while (a>=10) 
    {
        a /= 10;
    }
    return a;
}
int main()
{
    int a, b, a_digit, b_digit;
    printf("Int 2 numbers:\n");
    scanf_s("%d %d", &a, &b);
    a_digit = disassembly(a);
    b_digit = disassembly(b);
    if (a_digit > b_digit || ((a_digit == b_digit) && (a > b)))
        printf("%d\n", a);
    else
        printf("%d\n", b);
    system("pause");
    return 0;
}

此外,名称disassembly与函数含义不匹配。我建议将其更改为类似于get_first_digit的内容。

票数 2
EN

Stack Overflow用户

发布于 2020-12-18 04:23:58

您的代码不读取从函数返回的值,从而使变量ab保持不变。

更改:

代码语言:javascript
复制
disassembly1(A1);
disassembly2(B1);

至:

代码语言:javascript
复制
a = disassembly1(A1);
b = disassembly2(B1);

其他建议:

定义并使用function的一个实例:int disassembly(int x);,然后调用它两次。

代码语言:javascript
复制
a = disassembly(A1);
b = disassembly(B1);
票数 1
EN

Stack Overflow用户

发布于 2020-12-18 04:29:15

这是一个简单得多的版本(这是matlab/octave,但可以很容易地移植到c)

代码语言:javascript
复制
a = 4506;
b = 29985;
isAbigger = floor(a/10^(floor(log10(a)))) > floor(b/10^(floor(log10(b))));
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65347732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档