| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1698 人关注过本帖
标题:一个整数转换成一个字符串,输出结果乱码?
只看楼主 加入收藏
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
一个整数转换成一个字符串,输出结果乱码?
下面是我写的代码 :

#include"stdio.h"
    int i=0;
    char ch[10];                    /*定义一个字符数组*/
    main()
    {
    int putin;                          /*定义变量*/
    void tranf(int change);             /*声明函数*/
    printf("Please input the number:"); /*提示输入*/
    scanf("%d",&putin);                 /*获取数据*/
    tranf(putin);                       /*调用函数*/
    getch();
    }
    void tranf(int change)
    {


    if(change!=0)                   /*判断*/
        {
        ch[i]=(change%10);          /*为字符数组赋值*/
        i++;                        /*字符数组向下移一个*/
        change/=10;                 /*求商且更新变量的值*/
        tranf(change);              /*再次调用函数*/
        }
    printf("%s",ch);                /*输出结果*/
    }

输出结果为乱码,请问错在哪里?应该怎样忙改?谢谢。
搜索更多相关主题的帖子: 整数 乱码 字符 结果 输出 
2010-12-20 00:13
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
直接用循环,你这相似是而非的递归不出问题,那是不正常的。

★★★★★为人民服务★★★★★
2010-12-20 06:47
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:5 
程序代码:
int i=0;
char ch[10];                    /*定义一个字符数组*/
void main()
{
    int putin;                          /*定义变量*/
    void tranf(int change);             /*声明函数*/
    printf("Please input the number:"); /*提示输入*/
    scanf("%d",&putin);                 /*获取数据*/
    tranf(putin);                       /*调用函数*/
    ch[i] = '\0';
    printf("%s",ch);                /*输出结果*/
    getch();
}
void tranf(int change)
{
    if(change>=10)                   /*判断*/
    {
        tranf(change/10);              /*再次调用函数*/
    }
    if(change<0)
    {
        ch[i]='-';
        i++;
        tranf(-change);
    }
    else
    {
        ch[i]=(change%10)+'0';          /*为字符数组赋值*/
        i++;                        /*字符数组向下移一个*/
    }
}


[ 本帖最后由 makebest 于 2010-12-20 09:17 编辑 ]
2010-12-20 09:13
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:1 
最好带个头文件#include<conio.h>

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-12-20 09:33
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
对不起,我没有说清楚。这一个代码要利用递归函数实现。例如:输入586,输出是685.就是倒序输出。而且我想知道我的代码错在哪里?是错在给字符数组赋值的过程吗?
2010-12-20 22:53
折翼
Rank: 2
来 自:广东广州
等 级:论坛游民
帖 子:105
专家分:77
注 册:2010-10-22
收藏
得分:0 
以下是引用cnfarer在2010-12-20 06:47:44的发言:

直接用循环,你这相似是而非的递归不出问题,那是不正常的。
请问哪里出问题了?递归函数出问题了?
2010-12-20 22:57
yono
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2010-12-14
收藏
得分:3 
ch[i]=(change%10);          /*为字符数组赋值*/

ch[i]=(change%10)+48;

int(0)等于char(48)

int(9)等于char(57)
参照ASCii码表。
2010-12-21 15:52
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:5 
程序代码:
#include<stdio.h>

int i=0;
char ch[10];                    /*定义一个字符数组*/

int main(void)
{
    int putin;                          /*定义变量*/
    void tranf(int change);             /*声明函数*/

    printf("Please input the number:"); /*提示输入*/
    scanf("%d",&putin);                 /*获取数据*/
    tranf(putin);                       /*调用函数*/
    puts(ch);
    getch();
    return 0;
}

void tranf(int change)
{
      if(change!=0)                   /*判断*/
      {
            ch[i]=(change % 10)+0x30;          /*为字符数组赋值*/
            i++;                        /*字符数组向下移一个*/
            change/=10;                 /*求商且更新变量的值*/
            tranf(change);              /*再次调用函数*/
      }

                     /*输出结果*/
}

2010-12-21 18:33
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:6 
回复 6楼 折翼
递归一定要注意何时终止!i和字符数组可以作为转换函数的参数

[ 本帖最后由 cnfarer 于 2010-12-21 20:14 编辑 ]

★★★★★为人民服务★★★★★
2010-12-21 20:09
快速回复:一个整数转换成一个字符串,输出结果乱码?
数据加载中...
 
   



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

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