问题描述:在编写十进制转二进制时,希望结果可以储存到一个数组里,最后再在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中展示,可以这样改:
#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() 函数来实现十进制转二进制,并将结果以数组的形式保存。