标题:十六进制转化为十进制的程序
取消只看楼主
weihua
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-1
 问题点数:0 回复次数:0 
十六进制转化为十进制的程序
#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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-247239-1-1.html




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

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