| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 483 人关注过本帖
标题:编写函数 输入16进制函数 输出十进制函数 请大家帮忙看一下
只看楼主 加入收藏
jude1990
Rank: 2
等 级:论坛游民
帖 子:29
专家分:12
注 册:2009-7-26
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:2 
编写函数 输入16进制函数 输出十进制函数 请大家帮忙看一下
//自己把很多地方都省略了 比如在主函数内对输入的判断    仍然有问题   
//LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
//Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
//从来没有见过这样的报错   希望大家能帮找一下错  我是菜鸟  对函数这块不是很熟……  
#include<stdio.h>
void mian()
{   int f16(int);
    int f(int a[]);
    int a[10]={0},i;
    printf("input a number:\n");
    for(i=0;i<=10;i++)
        scanf("%d",&a[i]);
    printf("%d\n",f(a));
}
 int f16(int n)
 {
     int i,temp=1;
     for(i=0;i<n;i++)
         temp=temp*16;
     return temp;
 }

 int f(int a[])
 {
     int i,j,sum=0;
     for(i=9;i>=0;i--)//这儿是找到数开始的地方  比如123af00000   j=5
         if(a[i]!=0)
         {j=i;
          break;
         }
     for(i=0;i<10;i++)
           if(a[i]>=65&&a[i]<=70)
                 a[i]=a[i]-55;//换算
     for(i=0;i<=j,j>=0;i++,j--)
          sum=sum+a[i]*f16(j-i);//这儿的计算方法sum=sum+a[i]*16^(j-i)  比如i=0       1*16^4+…    这儿十六的指数写了一个函数f16
        return sum;
     }
搜索更多相关主题的帖子: 位制转换 报错 
2009-08-12 17:59
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:10 
#include<stdio.h>
#include<string.h>
long b2ten(char *x){
    int i,num,ret=0;
    int len=strlen(x);
    for(i=0;i<len;i++){
        if(x[i]>='A'&&x[i]<='Z')
            num=x[i]-'A'+10;
        if(x[i]>='0'&&x[i]<='9')
            num=x[i]-'0';
        ret*=16;
        ret+=num;
    }
    return (long)ret;
}
int main()
{
    char p[10];
    while(scanf("%s",p)!=EOF){
        printf("%d\n",b2ten(p));
    }
    return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-08-14 15:24
wangyf
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2009-6-27
收藏
得分:10 
#include <stdio.h>
#include <string.h>
int main(void)
{
    int i, j, m, n, k = 1,s = 0;
    char x[100];
    printf("被转换进制:");
    scanf("%d", &m);
    printf("大小:");
    scanf("%s", &x);
    printf("需转换进制:");
    scanf("%d", &n);
    for(i = strlen(x)-1;i >= 0;i--)
    {
        printf("十进制 = %d\n", s);
        printf("x[%d]: %d\n", i, x[i]-'0');
        for(j = 1;j <= (strlen(x)-1-i);j++)
            k *= m;
        s += (x[i]-'0') * k;
        k = 1;
    }
    printf("%d进制 = %d\n",m,s);
    memset(x,'\0',sizeof(x));
    i = -1;
    while(s != 0)
    {
        x[++i] = s % n + '0';
        s = (s - s%n) / n;
        if(s < n)
        {
            x[++i] = s + '0';
            break;
        }
    }
    printf("%d进制大小:",n);
    for(s = i;s >= 0;s--)
        printf("%c", x[s]);
    putchar(10);
    return 0;
}
2009-08-15 15:44
快速回复:编写函数 输入16进制函数 输出十进制函数 请大家帮忙看一下
数据加载中...
 
   



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

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