g++中使用itoa错误

来源:互联网 发布:加工产品在淘宝上出售 编辑:程序博客网 时间:2024/06/05 20:52

题目

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:
1234567890987654321123456789
输出样例:
yi san wu
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

AC代码:

#include <stdio.h>#include <string.h>#include <stdlib.h>//sprintfint fnum(char c);void change(char x);int main(){#ifdef ONLINE_JUDGE#elsefreopen("C:\\in.txt", "r", stdin);#endifchar n[110];while (scanf("%s", n) != EOF){int x;int len;len = strlen(n);int sum=0;int i;for (i=0; i<len; i++){x = fnum(n[i]);sum = sum+x;}//for//printf("%d\n", sum);char num[110];//////////////////////////////////////len = f(num, "%d", sum);//功能类似itoa:sum->num,返回字符串长度//////////////////////////////////////int j;for (j=0; j<len-1; j++){change(num[j]);printf(" ");}change(num[j]);printf("\n");}return 0;}int fnum(char c){int x;switch(c){case '0': x =0; break;case '1': x =1; break;case '2': x =2; break;case '3': x =3; break;case '4': x =4; break;case '5': x =5; break;case '6': x =6; break;case '7': x =7; break;case '8': x =8; break;case '9': x =9; break;}return x;}// 输出拼音,但无空格void change(char x){switch (x){case '0':printf("ling"); break;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("jiu"); break;}}


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------


编译错误代码:

#include <stdio.h>#include <string.h>#include <stdlib.h>//sprintfint fnum(char c);void change(char x);int main(){#ifdef ONLINE_JUDGE#elsefreopen("C:\\in.txt", "r", stdin);#endifchar n[110];while (scanf("%s", n) != EOF){int x;int len;len = strlen(n);int sum=0;int i;for (i=0; i<len; i++){x = fnum(n[i]);sum = sum+x;}//for//printf("%d\n", sum);char num[110];//////////////////////////////////////itoa(sum, num , 10);//sum->num, 10进制len = strlen(num);//////////////////////////////////////int j;for (j=0; j<len-1; j++){change(num[j]);printf(" ");}change(num[j]);printf("\n");}return 0;}int fnum(char c){int x;switch(c){case '0': x =0; break;case '1': x =1; break;case '2': x =2; break;case '3': x =3; break;case '4': x =4; break;case '5': x =5; break;case '6': x =6; break;case '7': x =7; break;case '8': x =8; break;case '9': x =9; break;}return x;}// 输出拼音,但无空格void change(char x){switch (x){case '0':printf("ling"); break;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("jiu"); break;}}




编译错误为:

/tmp/code.cc: In function 'int main()':/tmp/code.cc:32:21: error: 'itoa' was not declared in this scope


参考资料:

http://stackoverflow.com/questions/6462938/error-itoa-was-not-declared-in-this-scope

                                             
0 0