【发布时间】:2018-05-11 07:06:37
【问题描述】:
我编写的代码用strings 替换了从0 到3 的整数。我只被允许使用getchar() 和putchar()。如果input 为1,则输出将变为"one"。
#include <stdio.h>
int main()
{
int c;
char* arr[4] = {"zero", "one", "two","three"};
int i;
while ((c = getchar ()) != EOF)
{
if(c==0+'0') {
char* str = arr[0];
for (i = 0; str[i] != '\0'; i++) {
putchar(str[i]);
}
}
else if(c==1+'0') {
char* str = arr[1];
for (i= 0; str[i] != '\0';i++) {
putchar(str[i]);
}
}
else if(c==2+'0') {
char* str = arr[2];
for (i = 0; str[i] != '\0'; i++) {
putchar(str[i]);
}
}
else if(c==3+'0') {
char* str = arr[3];
for (i = 0; str[i] != '\0'; i++) {
putchar(str[i]);
}
}
else
putchar(c);
}
return 0;
}
code 很长。有没有更短的写法?
如果我输入33,输出将是"threethree"。谁能给我建议我如何修改我的代码不这样做?
注意:我也不能使用函数。
【问题讨论】: