【快乐PAT】PAT1005(简单题)

本文介绍如何将输入的数字串通过计算每个数字的累加和,然后将结果转换为英文单词形式。涉及到的知识点包括字符-48转换和sprintf函数的应用。通过实例展示了如何使用C++实现这个功能。

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

题目描述

原题链接点我

在这里插入图片描述

题解与代码

将输入的数字串每个数字求个累加和,然后将累加和的每个数字以英文单词的形式输出。
涉及知识点:字符-48为数字sprintf 这两个是我用到的主要知识点,也可能有别的做法不用sprintf。
AC代码:

#include <iostream>
#include <cstring>
using namespace std;
int sum;
int calcForSum(char *s){
	int slen=strlen(s);
	for(int i=0;i<slen;i++){
		sum+=*(s+i)-48;
	}
	return sum; 
}
void output(char *arr){
	int len=strlen(arr);
	for(int i=0;i<len;i++){
		if(i>0){
			cout<<" ";
		}	
		switch(*(arr+i)-48){
			case 0:cout<<"zero";continue;
			case 1:cout<<"one";continue;
			case 2:cout<<"two";continue;
			case 3:cout<<"three";continue;
			case 4:cout<<"four";continue;
			case 5:cout<<"five";continue;
			case 6:cout<<"six";continue;
			case 7:cout<<"seven";continue;
			case 8:cout<<"eight";continue;
			case 9:cout<<"nine";continue;
		}
	}
}
int main(){
	//定义输入的字符串
	char inStr[105];
	scanf("%s",inStr);
	//根据输入字符串计算其每个数字的累加和,放入sum中
	calcForSum(inStr);
	char arr[100];
	//将sum放入arr字符数组中
	sprintf(arr,"%d",sum);
	//调用函数output对字符数组中的每个数值进行输出
	output(arr);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值