C语言程序无法编译。

# include <stdio.h>
# include <stdafx.h>
void main( )
{
intnum;
inti;
intj;
inta[5];
intp(intx);
printf("请输入一个不大于5位正整数:");
scanf("%d",&num);
for(i=0;i<=4;i++)
a[i]=p(num/(10^i));
if(num==0)
{
printf("该数是1位数\n");
printf("%d\n",a[0]);
printf("%d\n",a[0]);
}
else
{
for(i=4;i<1;i--)
{
if(a[i]!=0)
{
printf("该数是%d位数\n",i+1);
for(j=0;j<=i;j++)
printf("%d,",a[j]);
printf("\n");
for(j=i;j=0;j--)
printf("%d,",a[j]);
break;
}
}
}
}
intp(int x)
{
intm;
m= x%10;
return(m);
}

我做了一下修改,你看看可是你需要的:

# include <stdio.h>
#include <math.h>
//# include <stdafx.h>//头文卜谨件是编译期要加的吗?
void main( )
{         
          int num; //int 后面有空格,下面一样        
          int i;         
          int j;         
          int a[5];         
          int p(int x);         
          
          printf("请输入一个不大于5位正整数:");         
          scanf("%d",&num);         
          
          for(i=0;i<=4;i++)                   
          a[i]=p(num/((int)pow(10,i))); //10^i应该用pow函数        
          
          if(num==0)         
          {
          坦埋                   printf("该数是1位数 "); 
                             printf("%d ",a[0]); 
                             //printf("%d ",a[0]);   //多一行      
          }        
          else        
          {
                      for(i=4;i>=0;i--)  //i<1干什么?                 
                      {
                                         if(a[i]!= 0)
                                         {
                                                   printf("该数是%d位数 ",i+1);
                                                   //for(j=0;j<=i;j++)
            让弊蚂                                       printf("%d,",a[i]);
                                                   printf(" ");
                                                   // for(j=i;j=0;j--)
                                                   // printf("%d,",a[j]);
                                                   // break; 
                                         }                   
                      }         
          }
          getch();
}        
int p(int x)         
{                   
                    int m;                   
                    m= x%10;                   
                    return(m);         
}

望采纳!


# include <stdio.h>
# include <stdafx.h>
#include<math.h>
void main( )
{
         int num;             // 这些也错了
         扰念int i;
         int j;
         int a[5];
         int p(int x);
         printf("请输入一个不大于5位正整数:");
         scanf("%d",&num);
         for(i=0;i<=4;i++)
                   a[i]=p(num/pow(10,i));  //指数是这样写
         if(num==0)
         {
                   printf("该数是1位数 ");
                   printf("%d ",a[0]);
                   printf("%d ",a[0]);
         }
         else
         {
                   for(i=4;i<1;i--)
                   {
                            if(a[i]!=0)
                            {
                            printf("该数是%d位数 ",i+1);
                            for(j=0;j<=i;j++)
                                     printf("%d,",a[j]);
                     顷配       printf(" ");
                            for(j=i;j=0;j--)
                                     printf("%d,",a[j]);
      缓乎困                      break;
                            }
                   }
         }
}
int p(int x)
{
    int m; //这里也是错了
    m= x%10;
   return(m);
}

你把我这个程序复制过去就可以通过编译了
但是你能告诉我这个程序要实现什么功能?
不然没法改

intnum;
inti;等改成 int num;int i;等