请高手帮我看一下我的c++程序有什么问题?急用,急用!
我的程序是想要这样:给一个有多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字,例如原数为321,应输出123.我的编程是这样的:...
我的程序是想要这样:给一个有多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字,例如原数为321,应输出123.
我的编程是这样的:
#include<stdio.h>
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
if(a/10000==0&&a/1000!=0)
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
if(a/10000==0&&a/1000==0&&a/100!=0)
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
if(a/10000==0&&a/1000==0&&a/100==0&&a/10!=0)
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
if (a/10000==0&&a/1000==0&a/100==0&&a/10==0&&a%10!=0) printf("这是一个一位数。\n");}
就每次执行时,比如我输入一个三位数,它就会把它处理我五位数,四位数,三位数,二位数,一位数。请问一下,我的程序哪 里出错了???急用 展开
我的编程是这样的:
#include<stdio.h>
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
if(a/10000==0&&a/1000!=0)
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
if(a/10000==0&&a/1000==0&&a/100!=0)
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
if(a/10000==0&&a/1000==0&&a/100==0&&a/10!=0)
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
if (a/10000==0&&a/1000==0&a/100==0&&a/10==0&&a%10!=0) printf("这是一个一位数。\n");}
就每次执行时,比如我输入一个三位数,它就会把它处理我五位数,四位数,三位数,二位数,一位数。请问一下,我的程序哪 里出错了???急用 展开
展开全部
#include<stdio.h>
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
{
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
}
else if(a/1000!=0)
{
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
}
else if(a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}
else if(a/10!=0)
{
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
}
else if (a%10!=0)
{ printf("这是一个一位数。\n");}
}
由于你输出的后面有多个语句,所以要让他们整体输出就必须用{}括起来!
还有 if 语句的格式!
void main()
{ long int a;
int b,c,d,e,f;
printf("请输入一个不多于五位的数值:");
scanf("%ld",&a);
if(a/10000!=0)
{
b=a/10000;
c=(a%10000)/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个五位数。\n");
printf("万位的数字是%d\n",b);
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d %d \n",f,e,d,c,b);
}
else if(a/1000!=0)
{
c=a/1000;
d=(a%1000)/100;
e=(a%100)/10;
f=a%10;
printf("这是一个四位数。\n");
printf("千位的数字是%d\n",c);
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d %d \n",f,e,d,c);
}
else if(a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}
else if(a/10!=0)
{
e=a/10;
f=a%10;
printf("这是一个二位数。\n");
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d \n",f,e);
}
else if (a%10!=0)
{ printf("这是一个一位数。\n");}
}
由于你输出的后面有多个语句,所以要让他们整体输出就必须用{}括起来!
还有 if 语句的格式!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if()后面有多语句的时候要用{}来括起来如:
if(a/10000==0&&a/1000==0&&a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}这样就行了
if(a/10000==0&&a/1000==0&&a/100!=0)
{
d=a/100;
e=(a%100)/10;
f=a%10;
printf("这是一个三位数。\n");
printf("百位的数字是%d\n",d);
printf("十位的数字是%d\n",e);
printf("个位的数字是%d\n",f);
printf("逆序输出各位数字是%d %d %d \n",f,e,d);
}这样就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解
if(){受if限制的语句都要花括号括起来}
if(){受if限制的语句都要花括号括起来}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果if语句成立运行多条语句
if语句后面要加{}
:
if(a>b)
{a-=3; b-=5;}
if语句后面要加{}
:
if(a>b)
{a-=3; b-=5;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if()
else if()
else if()
...
else if()
else if()
...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询