c语言程序设计,谁帮我看一下下面这个错在哪里该怎么改?
#include<stdio.h>
void main()
{
int a,b,c,d,e,f,g;
printf("输入一个不多于五位的正整数:");
scanf("%d",&a);
b=a/10000;
c=(a-10000*b)/1000;
d=(a-10000*b-1000*c)/100;
e=(a-10000*b-1000*c-100*c)/10;
f=(a-10000*6-1000*c-100*c-10*e);
if(b>0)
g=b+c*10+d*100+e*1000+f*10000;
printf("这是一个五位数");
printf("%d ",g);
else if(b==0&&c>0)
g=c+d*10+e*100+f*1000;
printf("这是一个四位数");
printf("%d ",g);
else if(b==0&&c==0&&d>0)
g=d+e*10+f*100;
printf("这是一个三位数");
printf("%d ",g);
else if(b==0&&c==0&&d==0&&e>0)
g=e+f*10;
printf("这是一个二位数");
printf("%d ",g);
else
g=f;
printf("这是一个一位数");
printf("%d ",g);
}
你程序中所有的条件判都少了{}
另外,你的计算也是错的,以下是改好的
#include<stdio.h>
void main()
{
int a,b,c,d,e,f,g;
printf("输入一个不多于五位的正整数:");
scanf("%d",&a);
b=a/10000;
c=(a-10000*b)/1000;
d=(a-10000*b-1000*c)/100;
e=(a-10000*b-1000*c-100*d)/10; //here
f=(a-10000*b-1000*c-100*d-10*e); //here
if(b>0)
{
g=b+c*10+d*100+e*1000+f*10000;
printf("这是一个五位数");
printf("%d ",g);
}
else if(b==0&&c>0)
{
g=c+d*10+e*100+f*1000;
printf("这是一个四位数");
printf("%d ",g);
}
else if(b==0&&c==0&&d>0)
{
g=d+e*10+f*100;
printf("这是一个三位数");
printf("%d ",g);
}
else if(b==0&&c==0&&d==0&&e>0)
{
g=e+f*10;
printf("这是一个二位数");
printf("%d ",g);
}
else
{
g=f;
printf("这是一个一位数");
printf("%d ",g);
}
}