在编写十进制转二进制时,希望结果可以储存到一个数组里,最后再在printf里全部展示,却不知道怎么改(不变主函数)

问题描述:在编写十进制转二进制时,希望结果可以储存到一个数组里,最后再在printf里全部展示,却不知道怎么改(不变主函数)

代码:

#include 
#include 
#include 

int DecimalSystem_change_BinarySystem()//十进制转二进制
{
    int n,length,result;    
    static int a[20];
    printf("请输入所要转换的十进制数字:\n");        
    scanf("%d",&n);
    while(n/2){        
        a[length++] = n%2;
        n = n/2;            
    }
    a[length++] = n%2;        
    for(int i = length-1;i>=0;i--)
    {
        result=a[i];
    }
        printf("该十进制数字转换为二进制数字为:%d",result);
}

int main()
{
   DecimalSystem_change_BinarySystem();
    return 0;
}

因为我是想要输出文字和最后的结果,在思考过后我想到了解决方法:

int DecimalSystem_change_BinarySystem()//十进制转二进制
{
    int n,length,result;
    static int a[20];
    printf("请输入所要转换的十进制数字:\n");
    scanf("%d",&n);
    while(n/2){
        a[length++] = n%2;
        n = n/2;
    }
    a[length++] = n%2;
    printf("该十进制数字转换为二进制数字为:");
    for(int i = length-1;i>=0;i--)
        printf("%d",a[i]);

}

这样我的输出就既有文字也有结果了!谢谢各位友友


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int DecimalSystem_change_BinarySystem()//十进制转二进制
{
    int n,length = 0,result;    
    static int a[20];
    printf("请输入所要转换的十进制数字:\n");        
    scanf("%d",&n);
    while(n/2){        
        a[length++] = n%2;
        n = n/2;            
    }
    a[length++] = n%2;   
    printf("该十进制数字转换为二进制数字为:");     
    for(int i = length-1;i>=0;i--)
    {
        printf("%d",a[i]);
    }
        printf("\n");
}
 
int main()
{
   DecimalSystem_change_BinarySystem();
    return 0;
}

小魔女参考了bing和GPT部分内容调写:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Decimalsystem_change_Binarysystem(int n)
{
    int mlengthresult;
    static int a[26];
    int lengtht = 0;
    while(n/2){
        a[lengtht++] = n%2;
        n = n/2;
    }
    a[lengtht++] = n%2;
    for(int i = lengtht-1;i>=0;i--)
    {
        printf("%d",a[i]);
    }
    printf("\n");
    return 0;
}

int main()
{
    int n;
    scanf("%d",&n);
    Decimalsystem_change_Binarysystem(n);
    return 0;
}

要实现将十进制转换为二进制,并将结果储存到数组中,最后在printf中展示,可以这样改:

  1. 在函数Decimalsystem_change_Binarysystem中,将printf改为将结果存入数组a中,即a[lengtht++] = n%2;
  2. 在main函数中,添加一个for循环,遍历数组a,将元素依次打印出来,即printf("%d",a[i]);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Decimalsystem_change_Binarysystem(int n)
{
    int mlengthresult;
    static int a[26];
    int lengtht = 0;
    while(n/2){
        a[lengtht++] = n%2;
        n = n/2;
    }
    a[lengtht++] = n%2;
    return 0;
}

int main()
{
    int n;
    scanf("%d",&n);
    Decimalsystem_change_Binarysystem(n);
    for(int i = 0; i < 26; i++){
        printf("%d", a[i]);
    }
    printf("\n");
    return 0;
}

回答不易,记得采纳呀。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您可以在 DecimalSystem_change_BinarySystem() 函数中将二进制数保存在数组中,然后在 main() 函数中遍历数组并输出结果。

修改后的代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void DecimalSystem_change_BinarySystem()//十进制转二进制
{
    int n,length;
    static int a[20];
    printf("请输入所要转换的十进制数字:\n");
    scanf("%d",&n);
    while(n/2){
        a[length++] = n%2;
        n = n/2;
    }
    a[length++] = n%2;

    printf("该十进制数字转换为二进制数字为:");
    for(int i = length-1;i>=0;i--)
    {
        printf("%d",a[i]);
    }
}

int main()
{
    DecimalSystem_change_BinarySystem();
    return 0;
}


在这个代码中,数组 a 保存了转换后的二进制数,而 for 循环用于输出该数组中的所有元素。这样您就可以在 main() 函数中调用 DecimalSystem_change_BinarySystem() 函数来实现十进制转二进制,并将结果以数组的形式保存。