指针作为函数参数03(C)

从键盘输入一个正整数,编写一个函数,求出这个整数的二进制形式,并显示。显示的功能在 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的值作为函数返回值
} 

猜你喜欢

转载自blog.csdn.net/ukco_well/article/details/82084883