念数字 (15分
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:
0: ling
1: yi
2: er
3: san
4: si
5: wu
6: liu
7: qi
8: ba
9: jiu
输入格式:
输入在一行中给出一个整数,如:1234。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如 yi er san si。
输入样例:
-600
输出样例:
fu liu ling ling
下面是我的代码结果不清楚,说格式错误,答案错误
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
int a,r;
scanf("%d",&a);
int i;
if(a<0)
{
printf("fu ");
a = -a;
}
for(i=0;;i++)
{
if(pow(10,i)>a)
{
//printf("%d位数\n",i);//判断几位数
break;
}
}
while(i>0)
{
r = a/pow(10,i-1);
//d = a/pow(10,i-1);
a = a - r*pow(10,i-1);
i--;
switch(r)
{
case 1:printf("yi");break;
case 2:printf("er");break;
case 3:printf("san");break;
case 4:printf("si");break;
case 5:printf("wu");break;
case 6:printf("liu");break;
case 7:printf("qi");break;
case 8:printf("ba");break;
case 9:printf("qiu");break;
case 0:printf("ling");break;
}
printf("");
}
system("pause");
return 0;
}
代码没问题,不过按题义,当然用查字典法最好 ba21 发表于 2020-1-12 17:25
代码没问题,不过按题义,当然用查字典法最好
老哥,能具体写一下吗。。。 #include <stdio.h>
#include <string.h>
#include <stdbool.h>
char *get_string(char *buff, int number)
{
char *table[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
char data;
char *p = data;
char *pointer;
size_t count = 0;
bool neg = false;
if(number < 0)
{
number = -number;
neg = true;
}
do
{
size_t a = number % 10;
number /= 10;
strcpy(p, table);
pointer = p;
while(*p != '\0')
++p;
++p;
}
while(number);
p = buff;
if(neg)
{
strcpy(p, "fu");
p += 2;
*p++ = ' ';
}
for(int i = count - 1; i >= 0; --i)
{
strcpy(p, pointer);
while(*p != '\0')
++p;
*p++ = ' ';
}
*--p = '\0';
return buff;
}
int main(void)
{
char buff;
printf("%s\n", get_string(buff, -1234560));
return 0;
}
意思差不多
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *py = {"ling", "yi","er","san","si","wu","liu","qi","ba","qiu"};
char a = {'\0'};
int i, idx;
gets(a);
i=0;
while( a!='\0' )
{
if( a=='-' )
{
printf("%s ", "fu");
i++;
continue;
}
idx = (int)a-48;
if(a == '\0')
printf("%s", py);
else
printf("%s ", py);
i++;
}
system("pause");
return 0;
}
页:
[1]