求助,全RE,谢谢大佬 (我寻思着所有循环都都有终止条件,为什么devc++会输出3221225477)
#include<stdio.h>
int bit(int n);
void bin(int n);
void function(int n);
int length;
int bin_arr[20001];
int main(){
int n;
length=bit(n);
scanf("%d",&n);
function(n);//执行题目要求
}
int bit(int n){ //将一个数的二进制长度表示出来
int k=0;
for(int i=n;i>0;i/2){
k++;
}
return k;
}
void bin(int n){ //求出二进制数组
int j=0; //j是放二进制数的索引
for(int i=n;i>0;i/2){
bin_arr[j]=i%2;
j++;
}
}
void function(int n){
bin(n);
int len=bit(n);
for(int i=len;i>0;i--){
if(bin_arr[i]==1){
if(i<2){
if(i==2) printf("2") ;
else if(i==1) printf("2(0)");
else if(i==0) printf("0");
}
else{ //想用return一个字符串的功能,但不会
printf("2(");
function(i);
printf(")+");
}
}
}
}