| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:十六进制转化为十进制的程序
只看楼主 加入收藏
weihua
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-1
收藏
 问题点数:0 回复次数:2 
十六进制转化为十进制的程序
#include<stdio.h>
#include<string.h>
#include<math.h>
long convert(char str[])
{
    int i,n;
    n=strlen(str);
    int a[81];
    long b=0;
    for (i=0;i<n;i++)
    {
        if(str[i]>=48&&str[i]<=57)
            a[i]=str[i]-48;
        else     if(str[i]>=65&&str[i]<=70)
                     a[i]=str[i]-55;
               else     if(str[i]>=97&&str[i]<=102)
                             a[i]=str[i]-87;
                       else printf("data error!\n");
                       b+=a[i]*pow(16,n-1-i);
    }
    return b;
}

void main()
{
    int flag=1;
    char s[81];
    while(flag==1)
    {
    printf("input a hexnumber :");
    gets(s);
    printf("out put a decimal number:%ld\n",convert(s));
    printf("if you want to continue input 1:");
    scanf("%d",&flag);
    }

}
这是我写的一个把一个十六进制转化为十进制的程序,为什么执行了一次这后就不行了。而且结果还比较怪,希望哪位大师指点一下,还有有什么不好和地方还需要改正直说啊!我是诚心学习的!!
搜索更多相关主题的帖子: 疑惑 怪怪的执行结果 C语言 学习 代码 
2008-12-01 20:11
weihua1104
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-12-5
收藏
得分:0 
再次输入的时候没有输入吧!再在gets语句中加一句getchar();就行了
2008-12-05 18:56
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:0 
最好直接用字符常量描述条件,不要用它的ASCII码。不直观。
2008-12-05 20:07
快速回复:十六进制转化为十进制的程序
数据加载中...
 
   



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

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