| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 506 人关注过本帖
标题:数制转换程序的一个小问题?
取消只看楼主 加入收藏
autumn2779
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-6-5
结帖率:0
收藏
已结贴  问题点数:5 回复次数:1 
数制转换程序的一个小问题?
#include<stdio.h>
char *trec(int idec,int ibase)
{
    char str[20],t;
    int idr,i,p=0;
    while(idec!=0)
    {
        idr=idec%ibase;
        if(idr>=10)
            str[p++]=idr-10+65;
        else
            str[p++]=idr+48;
        idec/=ibase;
    }
    for(i=0;i<p/2;i++)
    {
        t=str[i];
        str[i]=str[p-i-1];
        str[p-i-1]=t;
    }
    str[p]='\0';
    return str;
}

void main()
{
    int x,d;
    scanf("%d,%d",&x,&d);
    printf("%s\n",trec(x,d));
}

此程序我在vc6.0中运行时结果不对,我单步调试了下,发现是str[20]数组有问题,如果改成str[500],比如输入10,2程序就能运行正确。请问有哪个大侠能跟我解释下这是啥原因?
搜索更多相关主题的帖子: return 
2011-05-15 15:57
autumn2779
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2010-6-5
收藏
得分:0 
谢谢啦
2011-05-24 22:13
快速回复:数制转换程序的一个小问题?
数据加载中...
 
   



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

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