| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 989 人关注过本帖, 1 人收藏
标题:关于整数转数组的问题,请问这串代码哪里有问题
只看楼主 加入收藏
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
结帖率:96.88%
收藏(1)
已结贴  问题点数:20 回复次数:7 
关于整数转数组的问题,请问这串代码哪里有问题
程序代码:
#include<stdio.h>
#include<string.h>
int num(int x);
int main()
{
    char a[100000],b[100000];
    int n;
    int i=0;
    scanf("%d",&n);
    int str=num(n);
    for(;i<str;i++)
    {   a[str-1-i]=n%10;
        n/=10;
    }
    strncpy(b,a,str);
    printf("%s",b);
    return 0;
}
int num(int x)
{
    int i=0;
    while(x){
     i++;
     x/=10;}
    return i;
}

搜索更多相关主题的帖子: num int 数组 str 整数 
2019-12-15 14:07
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
居然不能传图片 我在调试的时候输入12345
a就是"\001\002\003\004\005",'\000'
最后就会输出乱码了,不知道是哪里出现问题了

我想要两颗西柚。
2019-12-15 14:11
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
使用递归方法定义函数i2a,将1个正整数转换成字符串。
要求:不调用库函数sprintf、itoa。
Note:这个函数的功能与非标准库函数itoa相类似。
//********** Specification of i2a **********
char* i2a(char* p,int n);
/* PreCondition:
     n is a non-negative integer,
     p is a pointer to a buffer
   PostCondition:
     put string representation of n in a buffer pointed by p,
     and return p
Retrn char*: return the first address of buffer p.
*/
【输入】
第1行:一个正整数i,在int范围内
【输出】
一行,对应的字符串
【样例输入】
123456
【样例输出】
123456

我想要两颗西柚。
2019-12-15 14:12
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
程序代码:
#include<stdio.h>

int num(int i,int x,char *a);
int main()
{
    char a[11];
    int n,m;
    scanf("%d",&n);
    m=num(0,n,a);
    while(m)
        printf("%c",a[--m]);
    return 0;
}
int num(int i,int x,char *a)
{
    int m;
    if(x>=10)
        m=num(++i,x/10,a);
    else
        m=++i;
    a[--i]=x%10+'0';
    return m;
}


[此贴子已经被作者于2019-12-15 15:25编辑过]


一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-15 15:17
bcbbcclbbc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:194
专家分:528
注 册:2019-8-15
收藏
得分:5 
2019-12-15 15:21
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:15 
写的这个不符合题意,不是递归的方法,你的这个可以这样改
程序代码:
#include<stdio.h>
#include<string.h>
int num(int x);
int main()
{
    char a[11];    //4字节int型最大10位,所以定义个11位的字符串就够了。
    int n;
    int i=0;
    scanf("%d",&n);
    int str=num(n);
    for(;i<str;i++)
    {   
        a[str-1-i]=n%10+'0';
        n/=10;
    }
    a[str]='\0';                //赋予结束符
    printf("%s",a);
    return 0;
}
int num(int x)
{
    int i=0;
    while(x){
     i++;
     x/=10;}
    return i;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-12-15 16:00
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
回复 6楼 纯蓝之刃
是这样的 我们学校平台不会测试有没有按照题目提示的方法写代码的
刚才带进去accepted了 非常感谢!!但是这是为什么呀

我想要两颗西柚。
2019-12-15 16:05
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
回复 4楼 纯蓝之刃
啊啊dbq刚才只看到最后一条了 忘记给这条赋分了qaq
我学了递归,也学了数组,但是完全不会把递归和数组结合,你好厉害!!

我想要两颗西柚。
2019-12-15 16:08
快速回复:关于整数转数组的问题,请问这串代码哪里有问题
数据加载中...
 
   



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

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