| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 409 人关注过本帖
标题:关于十进制转化的问题,新手,请各位大侠指点
只看楼主 加入收藏
孟颖童
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-11-14
结帖率:100%
收藏
 问题点数:0 回复次数:3 
关于十进制转化的问题,新手,请各位大侠指点
要求:
定义一个函数Convert,接收两个参数,第一个参数为被转换的10进制正整数,第二个参数是进制,例如2或8,按照第二个参数的进制要求转换第一个参数,在函数里面进行输出,以8位形式输出。

从main主调函数从键盘输入待转换的数字和进制。


input:2,2

output:00000010

input:15,8

output:00000017

我编的程序:
#include "stdafx.h"
int main()
{
    int Convert(int a,int b);
    int x,y,z[8];
    scanf("%d %d",&x,&y);
    z=Convert(a,b);
    printf("%s",z);
    return 0;
}

int Convert(int a,int b)
{
    int i=0,m[8];
    while(i<8)
    {
        m[7-i]=a%b;
        a=b;
        b=m[7-i];
        i++;
    }
    return m[i];
}
请大家帮我改改,不要另写一个,因为我这里有标准答案,我就是想知道按照我这种思路该怎样编出正确的程序,谢谢啦。

[此贴子已经被作者于2015-11-15 21:15编辑过]

搜索更多相关主题的帖子: include return 十进制 正整数 
2015-11-15 18:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这个样子是不行的  m[8] 这个内存的申请是在子函数中   主函数中看不到的

解决办法  你是在主程序中申请内存块 然后用函数传参的方式把地址传过去 或者是 申请全局变量

DO IT YOURSELF !
2015-11-16 08:17
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
也可以这样解决:
程序代码:
#include<stdio.h>
int Convert(int a,int b)
{
    int i,j,k;
    for(i=a,j=1,k=0;i>0;i/=b)
    {
        k=i%b*j+k;
        j*=10;
    }
    return k;
}

int main()
{
    int x,y,z;
    scanf("%d %d",&x,&y);
    z=Convert(x,y);
    printf("%08d\n",z);
    return 0;
}

能编个毛线衣吗?
2015-11-16 08:44
ntprc0x
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:23
专家分:130
注 册:2015-11-14
收藏
得分:0 
楼上给了个十进制内的

按你的思路 三十六进制内的

程序代码:
#include<stdio.h>

int main()
{
    void Convert(int a,int b);
    int x,y;
    scanf("%d %d",&x,&y);
    Convert(x,y);
    return 0;
}

void Convert(int a,int b)
{
    char c[36] = {'0','1','2','3','4','5','6','7','8','9',         
                    'a','b','c','d','e','f',                      
                    'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
    char m[9] = {'0','0','0','0','0','0','0','0','\0'};  

    int i=0;
    while(i<8)
    {
        m[7-i]=c[a%b];
        a/=b;
        i++;
    }
    printf("%s\n",m);
}



[此贴子已经被作者于2015-11-16 18:08编辑过]

2015-11-16 18:05
快速回复:关于十进制转化的问题,新手,请各位大侠指点
数据加载中...
 
   



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

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