这个程序哪里出问题了?为什么运行结果没出来?编译和构建都没有问题啊。

这个程序哪里出问题了?为什么运行结果没出来?编译和构建都没有问题啊。
这是源代码:vc++6.0的编译环境
#include
#include
int out(int p);
void main(){
int a[1],b[7],m=0,j=0,i,n,p;
printf("请输入一个十进制整数n:");
scanf("%d",&n);
do{
a[i++]=n%2;
n/=2;
} while (n!=0);

printf("n的二进制数为:");
for(i--;i>0;i--){
   printf("%d",a[i]);
   b[j]=a[i];}
printf("\n");

for(j=0;j<8;j++){
    if(b[j]=1){
        b[j]=10;
        printf("1→10");}
        printf("0→0");
}

b[2]=1;     //j=j+1; 
b[3]=1;   //j=j+1;
b[4]=0;  // j=j+1;
b[5]=0;   //j=j+1;
printf("二进制展开为:");
for(j=0;j<=i+4;j++){
    printf("%d",b[j]);
}
printf("\n");

p=b[j];

while(m!=101){
    j++;
    if(m==0&&b[j]==1)   {m=1; b[j]=0; out(p);} 
    if(m==1&&b[j]==0)   {m=0; b[j]=1; out(p);}
    if(m==1&&b[j]==1)   {m=10; b[j]=0; out(p);}
    if(m==10&&b[j]==0)  {m=11; b[j]=1; out(p);}
    if(m==11&&b[j]==0)  {m=101; b[j]=1; out(p);}
}

/*for(j=0;j<=i+1;j++){
    //b[0]
    m=b[j];
switch(m){
case 0:
    printf("内态为0,输入为0     ");
    for(j=0;j<=i+1;j++)
        printf("%d",b[j]);
        printf("\n");   break;

case 1:
    printf("内态为0,输入为1     ");
     b[j]=0;
    for(j=0;j<=i+1;j++)
        printf("%d",b[j]);
        printf("\n");   
        switch

}

*/

system("pause");

}

int out(int p ){
printf("结果为:\n");
//for(j=0;j<=i+4;j++)
printf("%d",p);
printf("\n");
return 0;
}

运行结果图片帖不过来。

#include后面的头文件怎么没有了,没有头文件,程序的语句没法编译运行。

缺失头文件