解题思路:一种通俗易懂易学,一种是优化后的解法
总体思路就是简单的求位数数字的数学方法,先/后%就行
注意事项:细心就行,主要要把循环结构每一步的循环结构弄明白才行
参考代码:
数组解法入下
#include <stdio.h>
#include <string.h> //C语言字符串头文件,strlen() 函数包含在此内
int main()
{
char str[10];
scanf("%s", str);
int len = strlen(str); //获取字符串长度
printf("%d\n", len);
for (int i = 0; i < len; i++)
{
printf("%c ", str[i]);
}
printf("\n");
for (int i = len - 1; i >= 0; i--)
{
printf("%c", str[i]);
}
return 0;
}
第一种简单易学的解法:
#include<stdio.h>
int main()
{
int a,b,c,d,e;
int i,x,flag=0;
scanf("%d", &x);
for (i = 1; i < 100000; i = i * 10)
if (x / i != 0)
flag=flag+1;
if (flag == 5)
{
a = x / 10000;
b = x / 1000 % 10;
c = x / 100 % 10;
d = x / 10 % 10;
e = x % 10;
printf("%d\n",flag);
printf("%d %d %d %d %d\n",a,b,c,d,e);
printf("%d%d%d%d%d",e,d,c,b,a);
}
if (flag == 4)
{
b = x / 1000 % 10;
c = x / 100 % 10;
d = x / 10 % 10;
e = x % 10;
printf("%d\n",flag);
printf("%d %d %d %d\n",b,c,d,e);
printf("%d%d%d%d",e,d,c,b);
}
if (flag == 3)
{
c = x / 100 % 10;
d = x / 10 % 10;
e = x % 10;
printf("%d\n",flag);
printf("%d %d %d\n",c,d,e);
printf("%d%d%d",e,d,c);
}
if (flag == 2)
{
d = x / 10 % 10;
e = x % 10;
printf("%d\n",flag);
printf("%d %d\n",d,e);
printf("%d%d",e,d);
}
if (flag == 1)
{
e = x % 10;
printf("%d\n",flag);
printf("%d\n",e);
printf("%d",e);
}
return 0;
}
优化后的解法:
#include <stdio.h>
#include <math.h> //C语言数学头文件,pow() 函数包含在此内
int main() {
int num;
scanf("%d", &num);
int n = 0;
if (num == 0) n = 1;
int temp = num; //定义 temp 来代替 num 进行计算
while (temp) { //将temp循环除以 10,到 0 为止
n++;
temp /= 10;
}
printf("%d\n", n);
for (int i = n - 1; i >= 0; i--)
{
temp = num / pow(10, i); //除以 10 的 i 次方
printf("%d ", temp % 10); //输出对 10 取余
}
printf("\n"); //输出回车
for (int i = 0; i < n; i++)
{
temp = num / pow(10, i);
printf("%d", temp % 10);
}
return 0;
}
0.0分
0 人评分
简单的a+b (C语言代码)浏览:643 |
打水问题 (C语言代码)浏览:1070 |
字符逆序 (C语言代码)浏览:614 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:537 |
sizeof的大作用 (C语言代码)浏览:1024 |
数列问题 (C语言代码)浏览:1020 |
JAM计数法 (C语言代码)浏览:669 |
【魔板】 (C++代码)浏览:1158 |
孤独的骑士 (C语言代码)浏览:1364 |
1073题解浏览:622 |