C语言题目) 给一个不多于5位的正整数,要求:
1:求出它是几位数;2:分别打印出每一位数字;3:按逆序打印各位数字,例如原数为321,应输出123如有适合C语言初学者的做法,请提供~~~~...
1:求出它是几位数; 2:分别打印出每一位数字; 3:按逆序打印各位数字,例如原数为321,应输出123
如有适合C语言初学者的做法,请提供~~~~ 展开
如有适合C语言初学者的做法,请提供~~~~ 展开
4个回答
推荐于2017-10-18
展开全部
我猜测你可能不会数组。因此给你编一个略有些麻烦但是很好理解的程序。您见笑了。
#include<stdio.h>
int main()
{
int n, a, b, c, d, e;
scanf("%d", &n);
a = n / 10000;
b = n / 1000 % 10;
c = n / 100 % 10;
d = n / 10 % 10;
e = n % 10;
if(a != 0)
{
printf("5\n");
printf("%d %d %d %d %d\n", a, b, c, d, e);
printf("%d%d%d%d%d\n", e, d, c, b, a);
}
else if(b != 0)
{
printf("4\n");
printf("%d %d %d %d\n", b, c, d, e);
printf("%d%d%d%d\n", e, d, c, b);
}
else if(c != 0)
{
printf("3\n");
printf("%d %d %d\n", c, d, e);
printf("%d%d%d\n", e, d, c);
}
else if(d != 0)
{
printf("2\n");
printf("%d %d\n", d, e);
printf("%d%d\n", e, d);
}
else if(e != 0)
{
printf("1\n");
printf("%d\n", e);
printf("%d\n", e);
}
else
{
printf("0\n0\n0\n");
}
return 0;
}
#include<stdio.h>
int main()
{
int n, a, b, c, d, e;
scanf("%d", &n);
a = n / 10000;
b = n / 1000 % 10;
c = n / 100 % 10;
d = n / 10 % 10;
e = n % 10;
if(a != 0)
{
printf("5\n");
printf("%d %d %d %d %d\n", a, b, c, d, e);
printf("%d%d%d%d%d\n", e, d, c, b, a);
}
else if(b != 0)
{
printf("4\n");
printf("%d %d %d %d\n", b, c, d, e);
printf("%d%d%d%d\n", e, d, c, b);
}
else if(c != 0)
{
printf("3\n");
printf("%d %d %d\n", c, d, e);
printf("%d%d%d\n", e, d, c);
}
else if(d != 0)
{
printf("2\n");
printf("%d %d\n", d, e);
printf("%d%d\n", e, d);
}
else if(e != 0)
{
printf("1\n");
printf("%d\n", e);
printf("%d\n", e);
}
else
{
printf("0\n0\n0\n");
}
return 0;
}
追问
cpp(4) : error C2065: 'scanf' : undeclared identifier
cpp(12) : error C2065: 'printf' : undeclared identifier
有错?
追答
不能啊,我调试后复制粘贴的。
展开全部
没看懂你想问什么,就解释一下你的备注提问的问题吧
1、int a[10]的意思是定义一个长度为10的整型向量,它可以存储10个整型的数值
2、这里int一个sum是为了下面用来计数,所以先将它赋值为0
3、这些东西是for循环里面的控制变量,总共有三个,用分号隔开。第一个就是分好前面的,表示循环起始条件是从i=0开始,两个分号中间的就是循环结束条件,因为不用设置所以就空着了,最后那个是变量的变化,i++的意思是i=i+1。
1、int a[10]的意思是定义一个长度为10的整型向量,它可以存储10个整型的数值
2、这里int一个sum是为了下面用来计数,所以先将它赋值为0
3、这些东西是for循环里面的控制变量,总共有三个,用分号隔开。第一个就是分好前面的,表示循环起始条件是从i=0开始,两个分号中间的就是循环结束条件,因为不用设置所以就空着了,最后那个是变量的变化,i++的意思是i=i+1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一位数字; 3:按逆序打印各位数字,例如
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-10-18
引用悼词之诵者的回答:
我猜测你可能不会数组。因此给你编一个略有些麻烦但是很好理解的程序。您见笑了。
#include<stdio.h>
int main()
{
int n, a, b, c, d, e;
scanf("%d", &n);
a = n / 10000;
b = n / 1000 % 10;
c = n / 100 % 10;
d = n / 10 % 10;
e = n % 10;
if(a != 0)
{
printf("5\n");
printf("%d %d %d %d %d\n", a, b, c, d, e);
printf("%d%d%d%d%d\n", e, d, c, b, a);
}
else if(b != 0)
{
printf("4\n");
printf("%d %d %d %d\n", b, c, d, e);
printf("%d%d%d%d\n", e, d, c, b);
}
else if(c != 0)
{
printf("3\n");
printf("%d %d %d\n", c, d, e);
printf("%d%d%d\n", e, d, c);
}
else if(d != 0)
{
printf("2\n");
printf("%d %d\n", d, e);
printf("%d%d\n", e, d);
}
else if(e != 0)
{
printf("1\n");
printf("%d\n", e);
printf("%d\n", e);
}
else
{
printf("0\n0\n0\n");
}
return 0;
}
我猜测你可能不会数组。因此给你编一个略有些麻烦但是很好理解的程序。您见笑了。
#include<stdio.h>
int main()
{
int n, a, b, c, d, e;
scanf("%d", &n);
a = n / 10000;
b = n / 1000 % 10;
c = n / 100 % 10;
d = n / 10 % 10;
e = n % 10;
if(a != 0)
{
printf("5\n");
printf("%d %d %d %d %d\n", a, b, c, d, e);
printf("%d%d%d%d%d\n", e, d, c, b, a);
}
else if(b != 0)
{
printf("4\n");
printf("%d %d %d %d\n", b, c, d, e);
printf("%d%d%d%d\n", e, d, c, b);
}
else if(c != 0)
{
printf("3\n");
printf("%d %d %d\n", c, d, e);
printf("%d%d%d\n", e, d, c);
}
else if(d != 0)
{
printf("2\n");
printf("%d %d\n", d, e);
printf("%d%d\n", e, d);
}
else if(e != 0)
{
printf("1\n");
printf("%d\n", e);
printf("%d\n", e);
}
else
{
printf("0\n0\n0\n");
}
return 0;
}
展开全部
else if(c != 0) 应改为 else if(!(c==0))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询