解题思路:
初学者用简单方法把三个问题挨个解决
注意事项:

有点费时间

参考代码:

#include <stdio.h>

int weishu(int x);   //自定义函数,位数,用于解决第一个问题,形参x调用主函数从键盘输入的a。

int kongge(int n);  //自定义函数,空格,用于解决第二个问题,形参x调用主函数从键盘输入的a。

int nixu(int j,int k,int l);  //自定义函数,逆序,用于解决第三个问题,形参j调用a,形参k调用b,形参l调用i。

int main()

{

int a, b=0, i=0;  //定义三个变量

scanf("%d", &a); //从键盘输入a的值

weishu(a); //调用函数,位数

kongge(a); //调用函数,空格

nixu(a,b,i); //调用函数,逆序

return 0;

}

int weishu(int x) //把实参a的值给x,x有几位就输出几。

{

if (x < 100000 && x>9999)

{

printf("5\n");

}

else if (x < 10000 && x>999)

{

printf("4\n");

}

else if (x < 1000 && x>99)

{

printf("3\n");

}

else if (x < 100 && x>9)

{

printf("2\n");

}

else if (x < 10 && x >= 0)

{

printf("1\n");

}

return 0;

}

int kongge(int n) //把实参a的值给n

{

int m; //定义变量m

if (n < 100000 && n>9999) //把n的每一位算出来赋值给m,再把m挨个输出,%d后面加空格,最后一个m后面加\n。

{

m = n / 10000;

printf("%d ", m);

m = n % 10000 / 1000;

printf("%d ", m);

m = n % 1000 / 100;

printf("%d ", m);

m = n % 100 / 10;

printf("%d ", m);

m = n % 10;

printf("%d\n", m);

}

else if (n < 10000 && n>999)

{

m = n % 10000 / 1000;

printf("%d ", m);

m = n % 1000 / 100;

printf("%d ", m);

m = n % 100 / 10;

printf("%d ", m);

m = n % 10;

printf("%d\n", m);

}

else if (n < 1000 && n>99)

{

m = n % 1000 / 100;

printf("%d ", m);

m = n % 100 / 10;

printf("%d ", m);

m = n % 10;

printf("%d\n", m);

}

else if (n < 100 && n>9)

{

m = n % 100 / 10;

printf("%d ", m);

m = n % 10;

printf("%d\n", m);

}

else if (n < 10 && n >= 0)

{

printf("%d\n", n);

}

return 0;

}

int nixu(int j, int k, int l) //实参a给j,实参b给k,实参i给l。

{

if (j < 100000 && j>9999) //l作为循环控制变量,k=j的最后一位,然后用j /= 10,把j的最后一位整没,循环输出k。

{

for (l = 0; l < 5; l++)

{

k = j % 10;

j /= 10;

printf("%d", k);

}

}

else if (j < 10000 && j>999)

{

for (l = 0; l < 4; l++)

{

k = j % 10;

j /= 10;

printf("%d", k);

}

}

else if (j < 1000 && j>99)

{

for (l = 0; l < 3; l++)

{

k = j % 10;

j /= 10;

printf("%d", k);

}

}

else if (j < 100 && j>9)

{

for (l = 0; l < 2; l++)

{

k = j % 10;

j /= 10;

printf("%d", k);

}

}

else if (j < 10 && j >= 0)

{

printf("%d", j);

}

return 0;

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论