这里,一开始使用了size_t的类型,它是无符号的,因此当等于0的时候,会溢出。
在这里插入代码片
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
int main(){
char s[11][100]= {"zero","one","two","three","four","five","six","seven","eight","nine"};
vector<int>num;
char N[1000];
scanf("%s",N);
int sum = 0, xu,chu;
for(int i = 0; i < strlen(N); i++) sum += (N[i] - '0');
do{
xu = sum % 10;
chu = sum/10;
sum = chu;
num.push_back(xu);
}while(sum != 0);
for(int i = num.size()-1; i >= 0; i--){
if(i != num.size()-1) printf(" ");
printf("%s",s[num[i]]);
}
return 0;
}`