|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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);
- }
复制代码
|
|