|  | 
 
| 
本帖最后由 凌_霜 于 2018-12-22 17:40 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 代码如下:
 
 复制代码#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");
}
 | 
 |