注册 登录
编程论坛 C语言论坛

任意输入一个不超过8位的正整数,将其转换成字符串输出。例如,输入正整数 986833,则输出字符串

吴佳俊 发布于 2020-04-19 11:59, 3129 次点击
任意输入一个不超过8位的正整数,将其转换成字符串输出。例如,输入正整数 986833,则输出字符串"986833"
限制:不用sprintf,不用高级语句,用数组形式
感谢大佬
7 回复
#2
飞天大烧卖2020-04-19 12:37
#include<stdio.h>
int main(void)
{
    int a[8]={0},i=0,j,b;
    char c[8]={'\0'};
    scanf("%d",&b);
    while(b!=0)
    {
        a[i]=b%10;
        b/=10;
        i++;
    }
    if(i>7)
    {
        printf("error");
        return 1;
    }

    for(b=0,--i,j=i;b<i+1;b++,j--)
    {
        
        c[b]=(a[j]+='0');
        
    }   
   
    printf("%s",c);
    return 0;
}
#3
forever742020-04-19 13:13
按要求不超过8位的话,定义char c[9]才是,还有个结束符要保存。
#4
吴佳俊2020-04-19 13:17
回复 2楼 飞天大烧卖
大佬,我运行了一下,不行无法达到想要的结果’
#5
飞天大烧卖2020-04-19 13:45
回复 4楼 吴佳俊
我不是大佬,按照楼上大佬说的改一下就可以了
#6
飞天大烧卖2020-04-19 13:54
回复 4楼 吴佳俊
还有if(i>7)改成i>8。我的输出可以啊!!
#7
飞天大烧卖2020-04-19 13:57
回复 4楼 吴佳俊
你要输出“”的话最后输出的时候加两句:printf("\"");
#8
吹水佬2020-04-19 14:50
#include <stdio.h>
int main(void)
{
    char s[9]={0};
    int i,n;
    scanf("%8d",&n);
    for (i=7; i>=0 && n; n/=10,--i)
        s[i] = n%10 + '0';
    printf("%s\n",&s[i+1]);
    return 0;
}


[此贴子已经被作者于2020-4-19 14:59编辑过]

1