博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言dos程序源代码分享(进制转换器)
阅读量:6571 次
发布时间:2019-06-24

本文共 2799 字,大约阅读时间需要 9 分钟。

今天给大家分享一个dos程序的源代码

这个程序是本人在学习中的经验分享

如果有问题或者建议,欢迎大家一起交流

源代码:

1 /*本程序为一个进制转换器  2 本程序不作为商业用途,完全为技术交流  3 喜欢C语言的同学关注我的博客,有值得推荐的我一定会推荐给大家*/  4 #include 
5 #include
6 #include
7 #include
8 9 //对函数的声明 10 void fact1(); 11 int func1(int n); 12 void func2(int n, int num); 13 void func3(int *a, int i, int n); 14 void func4(int m); 15 void func5(); 16 17 int menu; //定义菜单做为一个全局变量 18 int count = 1; 19 int main(void) 20 { 21 //给菜单设置一个循环 22 do 23 { 24 printf("第%d次\n", count++); 25 printf("**********************************************\n"); 26 //调用倒计时函数 27 func5(); 28 //定义菜单的功能 29 puts("!!欢迎使用进制转换器!!\n"); 30 puts("1.十进制->二进制"); 31 puts("2.十进制->八进制"); 32 puts("3.十进制->十六进制"); 33 puts("0.退出\n"); 34 //输入菜单 35 printf("请输入你的选项:"); scanf_s("%d", &menu); 36 //执行菜单 37 if (menu == 0) break; 38 else if (menu >= 1 && menu <= 3) 39 fact1(); 40 else 41 printf("抱歉,你输入的选项有误;请重新输入!!!\n"); 42 printf("\n**********************************************\n"); 43 printf("\n\n"); 44 } while (menu != 0); 45 46 } 47 //定义菜单为1时的函数 48 void fact1() 49 { 50 int num; 51 int n; 52 printf("请输入一个数:"); scanf_s("%d", &num); 53 n = func1(menu); 54 func2(n, num); 55 56 } 57 //定义需要转化的进制数的函数 58 int func1(int n) 59 { 60 //如果为1,则返回2进行二进制 61 if (menu == 1) 62 return 2; 63 //如果为2,则返回8进行八进制 64 else if (menu == 2) 65 return 8; 66 else 67 return 16; 68 } 69 //定义处理进制的函数 70 void func2(int n, int num) 71 { 72 int i = 0; 73 int a[100]; 74 do 75 { 76 *(a + i) = num % n; 77 num /= n; 78 i++; 79 } while (num != 0); 80 func3(a, i, n); 81 } 82 //定义输出进制的函数 83 void func3(int *a, int i, int n) 84 { 85 int j; 86 printf("转换为%d进制为:", n); 87 for (j = i - 1;j >= 0;j--) 88 { 89 if (n == 16 && (*(a + j)) >= 10 && (*(a + j)) <= 16) 90 func4((*(a + j))); 91 else 92 printf("%d", *(a + j)); 93 } 94 } 95 //定义转换16进制的时候函数 96 void func4(int m) 97 { 98 switch (m) 99 {100 case 10: printf("A"); break;101 case 11: printf("B"); break;102 case 12: printf("C"); break;103 case 13: printf("D"); break;104 case 14: printf("E"); break;105 case 15: printf("F"); break;106 }107 }108 //自定义倒计时函数109 void func5()110 {111 int i;112 //从5开始倒计时113 for (i = 5;i >= 1;i--)114 {115 printf("%d\b", i);116 Sleep(1000); //设置延时1秒117 }118 printf("\b");119 }

本代码仅大家学供习交流,不做其它用途

转载于:https://www.cnblogs.com/livekeys/p/6344981.html

你可能感兴趣的文章
Monostate模式
查看>>
Java线程的阻塞
查看>>
我美丽的家乡——洪雅[转]
查看>>
区块链监管难题争论不休,这里具体谈谈辅助监管的四种技术
查看>>
独家 | 一文读懂Adaboost
查看>>
在算法横行的时代,仍需要人类把关
查看>>
云存储是否能拯救数据泛滥
查看>>
CDN价格战外P2P重获关注,谁才是幕后推手
查看>>
【&amp;#9733;】Web精彩实战之&amp;lt;智能迷宫&amp;gt;
查看>>
【AI手机三国杀】三星Bixby闯入战场,AI功能集成颠覆人机交互
查看>>
新加坡推出人工智能计划AI.SG 迎战人工智能和数据科学关键难题
查看>>
NetApp公司的4KB块写入技术真能容纳更多数据吗?
查看>>
《中国人工智能学会通讯》——11.10 点云局部特征描述子基准评估体系
查看>>
360浏览器清凉新版让手机解暑
查看>>
9月22日云栖精选夜读:脑洞 | 横扫围棋界的AlphaGo竟然出纪录片了!介意剧透者慎点…...
查看>>
亚信安全中标南方电网网络架构优化调整项目 智能联动抑制未知威胁
查看>>
网络安全管理的“模拟人生”
查看>>
新技术将让硬盘密度再提五倍
查看>>
PMC联手云合作伙伴Canonical加入其Ubuntu OpenStack互通性实验室
查看>>
物联网还是泄秘网?嗅探流量即可知用户动向
查看>>