C语言程序问题,帮忙分析一下下面哪里出错了

#include <stdio.h>
main()
{
int a;
int h,i,j,k,l,n;
scanf("%d",&a);
if(a>0 && a<=9999)
else if(a>0 && a<=9)
h=a;
printf("%d是1位数,它的个位数是%d",a,h);
else if(a>9 && a<=99)
h=a%10;
i=a/10;
printf("%d是2位数,它的个位数是%d,十位数是%d",a,h,i);
else if(a>99 && <=999)
l=a%100;
h=l%10;
i=l/10;
j=a/100;
printf("%d是3位数,它的个位数是%d,十位数是%d,百位数是%d",a,h,i,j);
else if(a>999 && <=9999)
n=a%1000;
l=n%100;
h=l%10;
i=l/10;
j=n/100;
k=a/1000;
printf("%d是4位数,它的个位数是%d,十位数是%d,百位数是%d,千位数是%d",a,h,i,j,k);
else
printf("请输入不多于5位的正数");
return 0;
}

(8) : error C2181: illegal else without matching if
(11) : error C2181: illegal else without matching if
(15) : error C2181: illegal else without matching if
(15) : error C2059: syntax error : '<='
(19) : error C2018: unknown character '0xa3'
(19) : error C2018: unknown character '0xbb'
(20) : error C2146: syntax error : missing ';' before identifier 'printf'
(21) : error C2181: illegal else without matching if
(21) : error C2059: syntax error : '<='
(29) : error C2181: illegal else without matching if

注意括号和符号

36 C:\Users\TOSHIBA\Desktop\未命名1.cpp stray '\163' in program
36 C:\Users\TOSHIBA\Desktop\未命名1.cpp stray '\187' in program
这种问题一般检查是不是用了中文的分号、逗号。


注意一个语法,else if(a>9 && a<=999) 

里面的a是不能省略的,是不能这样写的:else if(a>99 && <=999)


#include <stdio.h>
#include <iostream>
int main()
{
int a;
int h,i,j,k,l,n;
scanf("%d",&a);
if(a>0 && a<=9999)
    {
if(a>0 && a<=9)
        {
       h=a;
       printf("%d是1位数,它的个位数是%d",a,h);
        }
    else if(a>9 && a<=99)
        {
       h=a%10;
       i=a/10;
       printf("%d是2位数,它的个位数是%d,十位数是%d",a,h,i);
        }
else if(a>99 && a<=999)
        {
       l=a%100;
       h=l%10;
       i=l/10;
       j=a/100;
         printf("%d是3位数,它的个位数是%d,十位数是%d,百位数是%d",a,h,i,j);
        }
else if(a>999 && a<=9999)
        {
       n=a%1000;
       l=n%100;
       h=l%10;
       i=l/10;
       j=n/100;
       k=a/1000;
       printf("%d是4位数,它的个位数是%d,十位数是%d,百位数是%d,千位数是%d",a,h,i,j,k);
        }
    }
else
   printf("请输入不多于5位的正数");
    system ("pause");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-04
#include <stdio.h>
main()
{
int a;
int h,i,j,k,l,n;
scanf("%d",&a);
if(a>0 && a<=9999)
{
//此处缺少执行语句
}
else if(a>0 && a<=9)
{
h=a;
printf("%d是1位数,它的个位数是%d",a,h); //if语句用中括号括起来
}
else if(a>9 && a<=99)
{
h=a%10;
i=a/10;
printf("%d是2位数,它的个位数是%d,十位数是%d",a,h,i);
}
else if(a>99 && <=999)
{
l=a%100;
h=l%10;
i=l/10;
j=a/100;
printf("%d是3位数,它的个位数是%d,十位数是%d,百位数是%d",a,h,i,j);
}
else if(a>999 && <=9999)
{
n=a%1000;
l=n%100;
h=l%10;
i=l/10;
j=n/100;
k=a/1000;
printf("%d是4位数,它的个位数是%d,十位数是%d,百位数是%d,千位数是%d",a,h,i,j,k);
}
else
printf("请输入不多于5位的正数");
return 0;
}追问

改了还是出错好多呢

追答

#include
main()
{
int a;
int h,i,j,k,l,n;
scanf("%d",&a);
if(a>0 && a9 && a99 && a999 && a<=9999)
{
n=a%1000;
l=n%100;
h=l%10;
i=l/10;
j=n/100;
k=a/1000;
printf("%d是4位数,它的个位数是%d,十位数是%d,百位数是%d,千位数是%d",a,h,i,j,k);
}
else
printf("请输入不多于5位的正数");
return 0;
}

本回答被网友采纳
第2个回答  2013-10-04
后面的两个else if语句里面的内容写错了,漏掉了a追问

??

相似回答