PAT甲级1005 易错点分析
思路解析:
输入一个字符串,将每一个字符转换成整型后相加存在sum中,再将sum拆分开按格式输出。
易错点分析:
1.sum=0,值不会存在a[i]中,需要单独输出“zero".
2.结尾不能输出space,在for循环的最后加一个判断if(i),i=0即为最后一个字符则不输出space.
3.输入值必须用string类型,转换成整数型再做相加,在测试案例中有几个输入值特别大,用int 和 long int型都无法通过测试.
#include<iostream>
using namespace std;
int main()
{
int sum = 0, i = 0, a[10];
string I;
cin >> I;
for (int i = 0; i < I.length(); i++)
{
sum += (I[i] - '0');
}
if (sum == 0)
cout << "zero";
while (sum != 0)
{
a[i++] = sum % 10;
sum /= 10;
}
i--;
for (;i>=0; i--) {
switch (a[i]) {
case 0:
cout << "zero";
break;
case 1:
cout << "one";
break;
case 2:
cout << "two";
break;
case 3:
cout << "three";
break;
case 4:
cout << "four";
break;
case 5:
cout << "five";
break;
case 6:
cout << "six";
break;
case 7:
cout << "seven";
break;
case 8:
cout << "eight";
break;
case 9:
cout << "nine";
break;
default:
cout << "zero";
break;
}
if (i)
cout << " ";
}
return 0;
}