
C不是没有二进制转化的格式代码嘛,说干就干写了个二进制转换的指针函数,哪里出问题了,DL看看(代码可能有点冗余,本人弱坤)

代码几处问题:
1.TentoTwo()函数在使用前,没有声明,应在第2 3 行插入一行函数声明语句:int *TentoTwo(int x);
2.在TentoTwo()函数里定义的两个数组都是局部变量,待TentoTwo()函数运行结束,这两个数组的生命期也随之结束,所以return h; 是个野指针。建议把数组yyx[]定义在主函数里,然后以形参的方式传递。
修改如下,改动处见注释,供参考:
#include <stdio.h>
#include <string.h>
int TentoTwo(int x, int yyx[]); // 修改
int main()
{
int x, yyx[20], n; // 修改
scanf("%d", &x);
n = TentoTwo(x, yyx); // 修改
for (int i = 0; i < n; i++)// 修改
printf("%d", yyx[i]);
return 0;
}
int TentoTwo(int x, int yyx[]) // 修改
{
int xyy[20], i = 0, j, t;
while (x){ // 修改
xyy[i++] = x % 2;
x /= 2;
}
t = i;
for(i--, j = 0; i >= 0; i--)
yyx[j++] = xyy[i];
return t; // 修改
}