从键盘输入一个正整数,编写一个函数,求出这个整数的二进制形式,并显示。显示的功能在 main 函数中完成。
/*=======================================================
*学号:1527403059
*作业:E60
*功能:求一个正整数的二进制表达式
*作者:陆胤任
*日期:2015.12.17
*========================================================*/
#include<stdio.h>
/*function declare
*@brief:将一个十进制数转换为二进制数
*@param:int x:输入的正整数
int arry[]:转换后的二进制数组
*@reval:int m:二进制数组的元素个数*/
int change_arry(int x,int arry[]); //声明 change_arry(int x,int arry[])函数
/*function define*/
int main() //主函数
{
int a,k;
int b[100],*p;
printf("请输入一个正整数:\n");
scanf("%d",&a); //输入正整数
k=change_arry(a,b); //调用函数
printf("该正整数的二进制表示为:\n");
for(p=b;p<(b+k);p++) //循环输出二进制数组
{
printf("%d",*p);
}
printf("\n");
return 0;
}
int change_arry(int x,int arry[]) //定义change_arry(int x,int arry[])函数
{
int *pointer_1,*pointer_2;
int c[100];
int m=0;
for(pointer_1=c;x>0;pointer_1++) //循环用指针将正整数转换为数组形式
{
*pointer_1=x%2;
x/=2;
m++;
}
for(pointer_2=arry;pointer_2<(arry+m);pointer_2++) //再次循环利用指针将数组转换为二进制数组形式
{
*pointer_2=*(--pointer_1);
}
return m; //将变量m的值作为函数返回值
}