#include<stdio.h>
#define start 90
#define end 99
int check(int* s)
{
int i;
for (i = 0; i <= end; i++)
{
if (s[i] != 0)
break;
}
if (i <= end)
return 1;
else
return 0;
}
//转换为二进制,start表示有效数字的最高位,end为有效数字的最后一位
void jz_2(int* s,int *l)
{
int i, j = 0;
int m;//余数
int n;//高位商
int ys[1000];//余数,最终输出
for (i = start; i <= end; i++)
{
if (i == end)
ys[(*l)++] = s[i] % 2;
m = s[i] % 2;
s[i] /= 2;
s[i + 1] += m * 10;
}
printf("%d", ys[(*l)-1]);
if (check(s))
jz_2(s,l);
}
int main()
{
int m = 0;//二进制位数
int s[100];
int i;
int* str;
for (i = start; i <= end; i++)
scanf("%d", &s[i]);
printf("二进制结果:");
jz_2(s, &m);
}
主函数里面加个结果变量接收jz_2的结果
1.把数组作为参数传入函数,直接在原数组上修改。2.申请一空间,用指针来代替数组。3.封装一个带数组的结构体作为返回值返回。