标题:inverse_numC语言能调用吗?怎么输出一个数的逆序。(关键:输出这个数本身 ...
只看楼主
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
结帖率:100%
已结贴  问题点数:20 回复次数:10 
inverse_numC语言能调用吗?怎么输出一个数的逆序。(关键:输出这个数本身)随便看一下我的哪儿错了
程序代码:
#include <stdio.h>                                        
int main()
{
    int m,x;
    do{
        printf("请输入一个正整数:");
        scanf_s("%d", &m);
        if (m<0)
            puts("请不要输入非正数。");
    } while (m <= 0);
    x = m;
    while (m >0){
        m /= 10;
        printf("%d", m%10);
    }printf("%d逆向显示的结果是%d", x,m%10);
    return 0;
    
}

这个代码是我改了的,将m的值赋给x,在对它进行求倒序,大佬有需求可以将这一部分删除,就可以看到标题的问题。

还有一种写法是友友告诉我的,
#include <stdio.h>
int inverse_num(int n)
{
    int t = 0;
    while (n)
    {
        t = t * 10 + t % 10;
        n /= 10;
    }
    return t;
}
搜索更多相关主题的帖子: 输出 C语言 while 关键 int 
2023-04-07 16:09
阳光上的桥
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:25
帖 子:82
专家分:525
注 册:2023-1-12
得分:7 
以下是一个用C语言编写的程序,可以读取一个整数并逆序输出它的每个数字:

程序代码:
#include <stdio.h>
int main()
{
    int n, reversed = 0;
    printf("请输入一个整数: ");
    scanf("%d", &n);

    // 将数字逆序转换到
    while (n != 0) {
        int digit = n % 10;
        reversed = reversed * 10 + digit;
        n /= 10;
    }

    printf("逆序输出为: %d\n", reversed);
    return 0;
}


在这个程序中,我们使用了一个 while 循环,以将每个数字逆序输出。具体来说,我们重复以下步骤,直到输入的数字变为零:
1.计算输入数字的个位数字,方法是用 % 运算符取模 10。
2.将个位数字添加到输出数字的最低位,方法是将输出数字乘以 10,然后加上个位数字。
3.将输入数字除以 10,这将丢弃个位数字并移动到下一个数字上。
最后,我们将逆序输出的数字打印到控制台上,完成程序。
2023-04-07 16:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:7 
语言组织得好乱呀,太难听懂你想表达什么

程序代码:
#include <stdio.h>

int inverse_num( int n ) // 你「友友」设计的这个函数的缺点是:不是每个int值的相反数都在int范围内
{
    int t = 0;
    for( ; n!=0; n/=10 )
        t = t*10 + n%10;
    return t;
}

int main( void )
{
    int m;
    printf("请输入一个正整数:");
    scanf( "%d", &m );
    printf( "%d 逆向显示的结果是 %d", m, inverse_num(m) );
}
2023-04-07 16:57
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
得分:0 
回复 2楼 阳光上的桥
谢谢版主,您的代码我看懂了,但我想问的是:
举个列:
控制台:请输入一个正整数:1963(我从键盘输入)
1963的逆序数是3691(我就想知道怎么才能把1963输入在窗口,输入在这句话里)
2023-04-07 21:22
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
得分:0 
回复 3楼 rjsp
写的很难懂吗,下次我改进改进,您的这个代码确实符合我的要求,但是有不有不用构造函数的方法啊,我想试着用最简单的while语句将它搞定,希望版主思索一下。
2023-04-07 21:30
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
得分:0 
以下是引用小白程序在2023-4-7 21:22:09的发言:

谢谢版主,您的代码我看懂了,但我想问的是:
举个列:
控制台:请输入一个正整数:1963(我从键盘输入)
1963的逆序数是3691(我就想知道怎么才能把1963输入在窗口,输入在这句话里)

我的要求就是上述,希望大家集思广益,多想点方法,简单点的就行。
2023-04-07 21:32
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
得分:0 
随便帮我看看我的while语句错在哪了,谢谢大家
2023-04-07 21:34
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:5 
错在你先除以10,后取个位,这时候取到的就错了。
应该先取余数(个位)输出,后除以10就好。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-04-08 08:18
小白程序
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2022-2-24
得分:0 
回复 7楼 小白程序
对了,还有一个问题就是怎么在窗口显示%d的逆序数是%d。前一个是原数,后一个数是逆序数。就是有这一个问题了,麻烦您了
2023-04-08 15:28
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:1 
回复 9楼 小白程序
理解一下inverse_num的精神,它干的就是这个。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-04-08 17:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511828-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.183621 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved