马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小飞侠 于 2011-6-15 07:12 编辑
报错信息:--------------------Configuration: df - Win32 Debug--------------------
Linking...
df.obj : error LNK2001: unresolved external symbol _identify
Debug/df.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
df.exe - 2 error(s), 0 warning(s)
源代码:很简单我是想实现输入二进制转换成十进制,或者输入十进制转换成而二进制。
麻烦各位了~~~#include <stdio.h>
#include <stdlib.h>
void decimaltobinary();
void binarytodecimal();
void main()
{
int oo;
love: printf("==================================================================");
printf("你好我能帮你计算十进制与二进制之间的转换!!!好好利用呦~~~");
printf("==================================================================");
printf("请问你是希望那种进制转换:\n");
printf("\t1.十进制转二进制;\n");
printf("\t2.二进制转十进制;\n");
printf("\t3.退出;\n");
scanf("%d" , &oo);
if(1 == oo)
{
decimaltobinary();
goto love;
}
if(2 == oo)
{
binarytodecimal();
goto love;
}
if(3 == oo)
{
exit(1);
system("pause");
printf("=========================欢迎使用!============================");
}
else
{
printf("======================输入有误!请重新选择:=====================");
goto love;
}
}
void decimaltobinary()
{
int n , i , num , times = 0 , a[50] = {0};
printf("请输入需要转换的十进制数 num: ");
scanf("%d" , &n);
printf("\n\n");
num = n;
for(i = 0 ; i < 100000 ; i++)
{
a[i] = num % 2;
num = num / 2;
times ++;
if(num == 0)
break;
}
printf("十进制数为:\t%d\n二进制数为:\t" , n);
for(i = times ; i >= 0 ; i--)
{
printf("%d" , a[i]);
}
printf("\n\n\n");
}
void binarytodecimal()
{
int identify(char *);
char a[40] ;
int n;
printf("请输入需要转换的二进制(正负皆可):\n");
scanf("%s" , &a);
n = identify(a);
printf("二进制数为:\t%s\n十进制数为:\t%ld" , a , n);
printf("\n\n");
}
int identfy(char *p)
{
long s = 0;
int flag = 1;
if((*p) == '-')
{
p++;
flag = -1;
}
else if((*p) == '+')
{
p++;
}
while(*p)
{
s = s*2 + (*p++) -48; //所有最妙的地方就在这里,妙处分析:
} /******************************************************
(1). s = s * 10 ===>> 因为读取时是从高位向低位读取,因
此高位先得到乘以10的待遇,这样也就刚好符合,高位的特性。
(2). (*p++) -48 等价于 (*p) -48; p++; 这样的两句;
(3). (*p)是该字符的ASCII码,减去48后,得到的是ASCII码对应
的数字字符,也就满足了条件,字符型输入&整型输出;
******************************************************/
return (s*flag);
}
|