所以我这里有一个问题。我正在做我的类作业,即创建一个计算器,但每个结果都必须用一个单词来表示,例如:
int a,b,c;
printf("Input first number:");
scanf("%d", &a);
printf("Input second number:"):
scanf("%d", &b);
c=a+b;
printf("The result are: %d", c);
printf("If in words, it is = ");
switch(c){
case 0:printf("abcdef");break;
case 1:printf("bc");break;
case 2:printf("abged");break;
case 3:printf("abgcd");break;
case 4:printf("fbgc");break;
case 5:printf("afgod");break;
case 6:printf("fgcde");break;
case 7:printf("abc");break;
case 8:printf("abcdefg");break;
case 9:printf("abcdfg");break;
default :printf("error");break;
所以我运行它时的结果是:
Input first number : 12
input second number : 12
The result are: 24
If in words, it is = error
所以我在这里感到困惑的是我如何将 c 结果打印为单词?所以我想要从输出中得到的是
Input first number : 12
input second number : 12
The result are : 24
If in words, it is = abged fbcg
到目前为止,我正在寻找答案,但找不到。如果这里有人可以帮助我,请帮助我。
提前致谢
*已编辑
最佳答案
what i want from my output is
Input first number : 12 input second number : 12 The result are : 24 If in words, it is = abged fbcg
如果你写的是“二四”而不是“abged fbcg”,问题会更清楚......
您显然想分别打印“十”和“个”。 (也可能是“数百个”。)
由于这是一项家庭作业,我只会给你一些提示,而不是完整的解决方案:
- 如果将
c
除以 10,就会得到“十”。如果您再次将该结果除以 10,您将得到“百”。 - 如果可以接受“二四”之类的内容,则可以对“十”和“个”使用相同的查找。如果您确实需要“二十四”,则需要查找“十”并查找“个”。
- 您需要先打印最高位(最左边)数字的单词,但您可以从我上面提到的除 10 的除法中得到它。因此,在查找“十”(也许还有“百”)时,您需要将“个”的查找结果“存储”在某个地方。存储可能是...
- ...数组。请小心检查输入的数字是否与数组中的空间相符(这样,如果有人输入太大的数字,就不会溢出)。如果您做得正确,则无需存储您查找的字符串,因为您可以存储指向这些字符串的指针。
- ...递归函数。 (一个用除以 10 的值调用自身,然后查找调用它的值的“1”——您可以通过模运算符
c % 10
得到它。)
关于在 C 中将整数结果转换为字符串或单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47259136/