问题描述:给定一个小于的整数,计算每位上数字的和,并用英语输出。
解题思路:用一个字符串数组将需要输出的字符储存起来,便于以后直接用数字转化为英语字符。数可以当做字符一个个输入,并计算和。然后输出和的每一位对应的英语字符。
AC代码:
/*1005 Spell It Right (20 分)
*动态输入相加得和,
*整形转字符sprintf(char *,format,int);itoa(),atoi();sscanf(char *,format,&address)//字符转整数
*/
#include<iostream>
#include<cstring>
using namespace std;
char english[][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
char c;
int sum=0;
//freopen("test.txt","r",stdin);
c=getchar();
while(c!='\n'){//局限性,必须以换行结束
sum+=c-'0';
c=getchar();
}
char out[20];
sprintf(out,"%d",sum);//将sum转化为字符串
int i=0;
while(i<strlen(out)){
printf("%s",english[out[i]-'0']);
if(i!=strlen(out)-1)printf(" ");
i++;
}
return 0;
}