算法>dotcpp-----问题 1009: 整数的拆分

本文介绍了一个关于整数拆分的小练习题,并通过使用sprintf函数实现将整数转换成字符串,进而实现对整数的位数统计、数字拆分及逆序输出等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#2018-5-13  17:35

#武汉工程大学邮电与信息工程学院邮科院校区

#软件工程1604谷子毅



问题 1009: 整数的拆分

时间限制: 1Sec 内存限制: 128MB 

题目描述
给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
输入
一个不大于5位的数字
输出
三行 第一行 位数 第二行 用空格分开的每个数字,注意最后一个数字后没有空格 第三行 按逆序输出这个数
样例输入
12345
样例输出
5
1 2 3 4 5
54321


这个题想让大家学会的是一个函数sprintf(),我目前对自己的要求如下:

1.将一个数字转换为字符串:




2.将两个数字合并为一个字符串:



3.将两个字符串合并:



接下来我们在做我们的这个题目:

#include<stdio.h>
#include<string.h>
int main(){
	int x, i, len;
	char s[10];
	scanf("%d", &x);
	sprintf(s, "%d", x);
	len = strlen(s);
	printf("%d\n", len);
	for(i = 0; i < len-1; i++){
		printf("%d ", s[i]-'0');
	}
	printf("%d\n", s[i]-'0');
	for(i = len-1; i >= 0; i--){
		printf("%d", s[i]-'0');
	}
	return 0;
}


其实可以更简单,把输入的那个数字直接当成字符串

#include<stdio.h>
#include<string.h>
int main(){
	int len, i;
	char s[10];
	scanf("%s", &s);
	len = strlen(s);
	printf("%d\n", len);
	for(i = 0; i < len-1; i++){
		printf("%d ", s[i]-'0');
	}
	printf("%d\n", s[i]-'0');
	for(i = len-1; i >= 0; i--){
		printf("%d", s[i]-'0');
	}
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值