弈秋呜呜呜 发表于 2021-9-25 18:30:51

29课动动手

29课动动手第0题
#include <stdio.h>

char *myitoa(int num, char *str);

char *myitoa(int num, char *str)
{
        int n = 0,temp;
       
        if (num < 0)
        {
                num = -num;
                str = '-';
        }
       
        temp = num;
        while (temp != 0)
        {
                temp /= 10;
                n++;
        }
       
        str = '\0';
        while (num != 0)
        {
                temp = num%10 + '0';
                num = num/10;
                str = temp;
        }
       
        return str;       
}

int main()
{
        char str;
       
        printf("%s\n", myitoa(520, str));
    printf("%s\n", myitoa(-1234,str));
   
    return 0;
}

大佬们帮忙看看我这个逻辑有啥问题吗,为什么不能达到预期要求啊?

灰色的天空 发表于 2021-9-25 18:30:52

不考虑大数字的情况下,你这个代码有两个问题,第一 对于数值0,你这个是没有显示的,第二个第22行 str,第27行 str[--n]。

万千只cnm 发表于 2021-9-25 19:36:27

问题贴出来

a83711140 发表于 2021-9-26 09:24:01

应该是数组的问题,按楼上改试了下能行。
页: [1]
查看完整版本: 29课动动手