将一个任意十进制整数转换为二进制数并打印出来
实现方法:除二取余法
实现思路:
1,将得到十进制数n反复除以2取余数,存入数组中。
2,用赋值运算n=n/2,来不断更新n的值
3,遍历数组将其倒序打印。
#include<stdio.h>
#include<string.h>
#define N 40
void d_to_b(int n,char a[]);
int main(){
int a,b,n;
char arr[N]={};
printf("请输入一个任意十进制数,将转化为二进制:\n");
scanf("%d",&n);
d_to_b(n,arr);
printf("请输入十进制数%d转化为二进制为:",n);
puts(arr);//puts(char *str)输出字符串
return 0;
}
/*将十进制n转换为二进制存入数组a[]中*/
void d_to_b(int n,char a[]){
int len=0;
while(n>0){ //反复除以2取余数并转换为字符,存入a[]中;
a[len]=n%2+'0';
len++;
n=n/2; //更新n的值
}
a[len]='\0'; //在a[] 中的有效元素之后加上字符串结束标志'\0';
strrev(a); //调用strrev()翻转a[]中的元素
}