# 1002 写出这个数 (C/C++语言实现)读入一个正整数 n，计算其各位数字之和，用汉语拼音写出和的每一位数字。输入格式：每个测试输入包含 1 个测试用例，即给出自然数 n 的值。这里保证 n

if (d[j - 1] == 0) {
printf("ling");

}
if (d[j - 1] == 1) {
printf("yi");

} else  if (d[j - 1] == 2) {
printf("er");

} else  if (d[j - 1] == 3) {
printf("san");

} else  if (d[j - 1] == 4) {
printf("si");

} else  if (d[j - 1] == 5) {
printf("wu");

} else if (d[j - 1] == 6) {
printf("liu");

} else if (d[j - 1] == 7) {
printf("qi");

} else if (d[j - 1] == 8) {
printf("ba");

} else if (d[j - 1] == 9) {
printf("jiu");

}



//简直了差点被坑死（就是第一个字符空格的判断，让我浪费了半小时）
//输出格式：(只能说这个题，输出格式是个坑)
//在一行内输出 n 的各位数字之和的每一位，拼音数字间有 1 空格，但一行中最
//后一个拼音数字后没有空格。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main() {
char a[10010];
long long sum = 0;
cin >> a;
int i = 0;
while (i < strlen(a)) {

sum += (int )a[i] - '0';
i++;
}
int d[10010];
//string c[10]={"yi","er","san","si","wu","liu","qi","ba","qiu"};
int j = 0;
while (sum) {
d[j] = sum % 10;
sum /= 10;
j++;

}
//判断
//_________________________________________________
if (d[j - 1] == 0) {
printf("ling");

}
if (d[j - 1] == 1) {
printf("yi");

} else  if (d[j - 1] == 2) {
printf("er");

} else  if (d[j - 1] == 3) {
printf("san");

} else  if (d[j - 1] == 4) {
printf("si");

} else  if (d[j - 1] == 5) {
printf("wu");

} else if (d[j - 1] == 6) {
printf("liu");

} else if (d[j - 1] == 7) {
printf("qi");

} else if (d[j - 1] == 8) {
printf("ba");

} else if (d[j - 1] == 9) {
printf("jiu");

}
//正常输出，注意空格的位置
//______________________________________________
for (int i = j - 2; i >= 0; i--) {
if (d[i] == 0) {
printf(" ling");
continue;
}
if (d[i] == 1) {
printf(" yi");
continue;
} else  if (d[i] == 2) {
printf(" er");
continue;
} else  if (d[i] == 3) {
printf(" san");
continue;
} else  if (d[i] == 4) {
printf(" si");
continue;
} else  if (d[i] == 5) {
printf(" wu");
continue;
} else if (d[i] == 6) {
printf(" liu");
continue;
} else if (d[i] == 7) {
printf(" qi");
continue;
} else if (d[i] == 8) {
printf(" ba");
continue;
} else if (d[i] == 9) {
printf(" jiu");

continue;
}
return 0;
}

return 0;
}



#include<bits/stdc++.h>
using namespace std;
char name[11][10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int sum=0;
string q;
int main(){
cin>>q;
//STL中可以对string使用  a.size() 或者 a.length() 来获取a的长度
for(int i=0;i<q.size();i++)sum+=q[i]-'0';
/*string temp=to_string(int a),可以将整数类型的a转换为string类型的字符串
如 int a=1234   to_string(a) =>    string temp=[1][2][3][4]
*/
string final=to_string(sum);
//类型为char 转为 int 需要 -'0' 具体内容可自行搜取ascii码表的相关知识
cout<<name[final[i]-'0'];
for(int i=1;i<final.size();i++)cout<<" "<<name[final[i]-'0'];
return 0;
}



• 1
点赞
• 3
收藏
觉得还不错? 一键收藏
• 1
评论

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