用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任相关的知识,希望对你有一定的参考价值。

用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任意整数。

n%10 这是对10取余数,如n=2345 时 n%10=5 ,n%10+'0' 就是在'0' 的ASCII码值上再加上n%10得到的值,如'0' 的ASCII码值是48,n%10+'0'=5+48=53。这么做是因为ASCII码表中数字字符是从0到9升序排列的,这样写就不用去考虑'0' 的ASCII码值是多少了。
至于为什么用putchar而不用printf,其实putchar()函数的作用等同于printf("%c", ch),所以用printf也是可以的。只是putchar()的功能就是输出一个字符,不需要格式化,这种场合下比printf方便。
参考技术A 没有这么复杂。
#include <stdio.h>
main()
int n, a[10], i=0;
printf("input a number:\n");
scanf("%d",&n);
while(n>0)
a[i]=n%10
n/=10;
i++;

for(n=0;n<i;n++)
printf("%d",a[n]);

这个就可以了。满意请采纳
参考技术B #include <stdio.h>
int main()

    int n,N[99],i=0;
    scanf("%d",&n);
    int x=n;
    while(x!=0)
    
        N[i]=x%10;
        x=x/10;
        i++;
    
    for(i=i-1;i>=0;i--)
    
        printf("%d",N[i]);
    

本回答被提问者采纳
参考技术C 输入你就用c语言解决吧。下面程序中的汇编子程序可嵌入c中使用的。供参考。

        CODE  SEGMENT
              ASSUME    CS:CODE

      START:  PUSH      CS
              POP       DS
              PUSH      CS
              POP       ES

              MOV       AX,32767
              CALL      DIGUIAX

              MOV       AH,4CH
              INT       21H
;=================================
     DIGUIAX  PROC      NEAR
              PUSH      BX
              PUSH      DX
              MOV       DX,0
              MOV       BX,10
              DIV       BX
              CMP       AX,0
              JE        @DIGUIAX1
              CALL      DIGUIAX
  @DIGUIAX1:
              OR        DX,30H
              MOV       AH,2
              INT       21H
              POP       DX
              POP       BX
              RET
     DIGUIAX  ENDP
;=================================
        CODE  ENDS
              END       START

参考技术D #include<stdio.h>

int a[100];
int k=0;

void f(int x)

int i;
a[k]=x%10;
if((i=x/10)!=0)

k++;
f(i);



void main()

int l;
scanf("%d",&l);
f(l);
int j;
for(j=k;j>=0;j--)
putchar(a[j]+'0');

把字符串转换成整数

题目描述

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

输入描述:

输入一个字符串,包括数字字母符号,可以为空

输出描述:

如果是合法的数值表达则返回该数字,否则返回0

输入

+2147483647
    1a33

输出

2147483647
    0

我的代码:

    int Getn(int x,int n)
    {
        int res = 1;
        while(n)
        {
            if(n&1)
                res*=x;
            n>>=1;
            x*=x;
        }
        return res;
    }
    
    int StrToInt(string str) {
        int len = str.length();
        int res = 0;
        int start = 0;
        int flag = 0;
        if(str[0] == +)
          start = 1;
        else if(str[0]==-)
       {
       flag
= 1;    start = 1; } for(int i = start; i < len;i++) { if(str[i] >= 0 && str[i] <= 9) { res += (str[i]-48)*Getn(10,len-1-i); } else return 0; } if(flag) return -res; else return res; }

Getn函数是取得x的n次幂的函数,每次判断第一个字符是否为 + 或 - ,剩下的字符判断是否为数字,然后乘以相应的幂数。

或者计算公式可以用:res=res*10+str[i]-‘0‘;

 


以上是关于用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任的主要内容,如果未能解决你的问题,请参考以下文章

用递归法将一个整数n转换成字符串。例如,输人483,应输出字符串483。n的位数不确定,可以是任意位数的整数

用递归法将一个整数转换成字符串

用递归法将整数n转换成字符串,输入483,输出字符“483”,怎么理解递归函数,putchar是输出一个字符。。

用递归法讲一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以使任意位数

C语言编程:用递归法将一个整数n转换成字符串。

用递归法将一个整数n转换成字符串。