小白自己写的代码,自己验证了看不出问题,但是提交后出现答案错误,求解释。
题目要求:
#include <stdio.h>
void PutNumInArray(int N);
int main()
{
int N;
scanf("%d", &N);
if (N < 0)
{
printf("fu ");
}
PutNumInArray(N);
return 0;
}
void PutNumInArray(int N)
{
int max, temp = 1, m = 10, M = N;
if (N < 0)
{
M = -N;
}//将N化为正数
for (max = 0; temp != 0; max++)
{
temp = M / m;
m *= 10;
}//求出N的位数max
int num[max];
int i = 0, nN;
for (i = 0; i < max; i++)
{
nN = M / 10 * 10;
num[i] = M - nN;
M = nN / 10;
}//将N的各位数字放入num数组
for (i = 0; i < max; i++)
{
switch (num[max - 1 - i])
{
case 0: printf("ling "); continue;
case 1: printf("yi "); continue;
case 2: printf("er "); continue;
case 3: printf("san "); continue;
case 4: printf("si "); continue;
case 5: printf("wu "); continue;
case 6: printf("liu "); continue;
case 7: printf("qi "); continue;
case 8: printf("ba "); continue;
case 9: printf("jiu "); continue;
}
}
printf("\b");
}
我觉着你可能是最后多输出了一个空格
#include
#include
using namespace std;
int main(){
string str[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
string _str;
cin>>_str;
for(int i=0;i<_str.size()-1;i++){
if(_str[i]=='-'){
cout<<"fu ";
continue;
}
for(int j=0;j<10;j++)
if(_str[i]-'0'==j)
cout<<str[j]<<" ";
}
cout<<str[_str[_str.size()-1]-'0'];
return 0;
}