|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 凌_霜 于 2018-12-22 17:40 编辑
代码如下:
- #include<stdio.h>//功能:十进制转化二进制
- void main()
- {
- int a,i,bei,yu;//bei:被除数。yu:余数。i=循环次数。a:所输入的数字。
- printf("该程序可实现十进制转化二进制!\n");
- printf("请输入需要转化的十进制数字:\n\t\t\t");
- scanf("%d",&a);
- yu=a%2;bei=a/2;
- printf("转化后的二进制数字为:(请从右向左读取!)\n\t\t\t");
- if(a<2)
- {
- bei=a/2;
- yu=a%2;
- i=1;
- printf("%d",yu);
- printf("该程序共进行了%d次除法!",i);
- }
- else
- {
- i=0;
- printf("0");
- begin:for(;bei>0;)
- {
- yu=bei%2;
- bei/=2;
- printf("%d",yu);
- i++;
- if(bei>0){goto begin;}
- printf("\n\t\t\t该程序共进行了%d次除法!",i+1);
- if(bei=0){goto finish;}
- }
- }
- finish:printf("\n\t\t\t\t\t\tFinish");
- }
复制代码
输入45,得到的结果如下:
该程序可实现十进制转化二进制!
请输入需要转化的十进制数字:
45
转化后的二进制数字为:(请从右向左读取!)
001101
该程序共进行了6次除法!
Finish
问题:能否利用函数将输出的001101赋值到数组,如果不行,这个程序应该怎么改???C语言萌新,求指教
你的代码是自己写的吧。。你用计算器算下看看,45的二进制是多少。 不要用goto
用数组存放的代码:
- #include<stdio.h>//功能:十进制转化二进制
- void main()
- {
- int a,i,bei,yu;//bei:被除数。yu:余数。i=循环次数。a:所输入的数字
- char b[100] = {'\0'};// 声明一个足够大的数组
- printf("该程序可实现十进制转化二进制!\n");
- printf("请输入需要转化的十进制数字:\n\t\t\t");
- scanf("%d",&a);
- yu=a%2;bei=a/2;
- printf("转化后的二进制数字为:(请从右向左读取!)\n\t\t\t");
- i=0;
- if(a<2)
- {
- bei=a/2;
- yu=a%2;
-
- b[i] = yu == 1? '1': '0';
- }
- else
- {
- b[i] = yu == 1? '1': '0';
- begin:for(;bei>0;)
- {
- yu=bei%2;
- bei/=2;
- i++;
- b[i] = yu == 1? '1': '0';
-
- if(bei>0){goto begin;}
- if(bei=0){goto finish;}
- }
- }
- printf("%s", b);
-
- printf("该程序共进行了%d次除法!",i+1);
- finish:printf("\n\t\t\t\t\t\tFinish");
- }
复制代码
|
|