前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >西电OJ题解-21(C语言):数位输出

西电OJ题解-21(C语言):数位输出

作者头像
不温卜火
发布2020-12-09 11:14:34
8650
发布2020-12-09 11:14:34
举报
文章被收录于专栏:不温卜火不温卜火

  大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://buwenbuhuo.blog.csdn.net/

PS:由于现在越来越多的人未经本人同意直接爬取博主本人文章,博主在此特别声明:未经本人允许,禁止转载!!!


2
2

西电OJ题解-21(C语言):数位输出

1
1

本专栏为西安电子科技大学C语言课程题库的题解,题目及其部分解题思路由好兄弟梁忠鑫提供,学长在此只是修改完善。请各位支持原创,目前仅在CSDN发布

一、题目

1. 题目描述

输入一个5位整数,求出其各数位数值,并按照从高位到低位的顺序输出, 如:输入12345,输出为1 2 3 4 5。

2. 输入说明

代码语言:javascript
复制
输入一个五位正整数。

3. 输出说明

代码语言:javascript
复制
按数位从高到低依次输出,各数位之间以一个空格相分隔。

4. 样例输出

代码语言:javascript
复制
输入样例:
96237

输出样例:
9 6 2 3 7

二、解题思路及题解

1. 解题思路

  • 1.暴力

感觉此种方法没啥说的,小学生都能明白的解题思路(小学生可能真会-。-)

  • 2.循环

循环包括正向打印与逆向打印

2. 题解

2.1 暴力

  • 源码
代码语言:javascript
复制
/**
 * @Author: 梁忠鑫 / 李华鑫(修改)
 * @Email: 459804692@qq.com
 * @Date: 2020/12/06
 * @Time: 15:55
 * @Version: 1.0
 */
 
#include <stdio.h>
int main()
{
	 int a,g,s,b,q,w;
	 scanf("%d",&a);
	 w=(a/10000)%10;
	 q=(a/1000)%10;
	 b=(a/100)%10;
	 s=(a/10)%10;
	 g=a%10;
	 printf("%d %d %d %d %d",w,q,b,s,g);
	 return 0;
}
  • 运行结果
3
3

2.2 循环

1. 逆向打印(此方法与非本题的正确解题思路,仅供参考)
  • 源码
代码语言:javascript
复制
/**
 * @Author: 李华鑫
 * @Email: 459804692@qq.com
 * @Date: 2020/12/06
 * @Time: 15:55
 * @Version: 1.0
 */
 
#include <stdio.h>
int main()
{
	int x,a[100]; // a[100]存储数字 
	int i =0;     // i表示输入值x的位数 (需要加上当输入为0时,位数为1) 
	scanf("%d",&x);
	 
	if(x==0){
		i=1;
	}
	while(x!=0){
		a[i]=x%10;
		x=x/10; 
		printf("%d ",a[i]);
		i++;
	}
	
	return 0;
	
}
  • 运行结果
3
3
2. 顺序打印
  • 源码
代码语言:javascript
复制
/**
 * @Author: 李华鑫
 * @Email: 459804692@qq.com
 * @Date: 2020/12/06
 * @Time: 16:30
 * @Version: 1.0
 */
 
#include <stdio.h> 
int main() 
{ 
	int n,a,b,d,i,j,k,m; 
	scanf("%d",&n); 
	for(k=1;k<=n;k++) 
	{ 
		scanf("%d",&a); 
		b=a; 
		m=0; 
		while(b>=10) 
		{ 
		b=b/10; 
		m++; 
		} 
		for(i=m; i>0; i--) 
			{ 
			d = 1; 
			for(j=0; j<i; j++) 
			d = d*10; 
			printf("%d ", a/d); 
			a = a-a/d*d; 
			} 
		printf("%d\n", a%10); 
	} 
	return 0; 
} 
  • 运行结果
5
5

5
5

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。   如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。   码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

6
6
7
7
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 西电OJ题解-21(C语言):数位输出
  • 一、题目
    • 1. 题目描述
      • 2. 输入说明
        • 3. 输出说明
          • 4. 样例输出
          • 二、解题思路及题解
            • 1. 解题思路
              • 2. 题解
                • 2.1 暴力
                • 2.2 循环
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档