这适用于 C 语言,而不是 C++ 语言。我对 C 的了解非常有限,因为我在入门级课程,而且我们刚刚过了中期。尽量保持简单,因为我不能包含我们在课堂上没有涉及的关键字或运算符。我认为这没有必要,因为我认为需要帮助的只是我的逻辑,而不是我的代码。
参考了上述两个示例来编写我的课程代码后,我很困惑如何完成我的最后一个小难题。我在这里找到了几个似乎相关的问题答案,但是他们使用代码来解决我不知道的问题。希望有人可以在这里帮助我理解我的逻辑。
我的任务目标是:
取一个用户定义的整数,并以英文显示数字。例如:
请输入整数:123
您已输入:一二三
然后,我需要将数字的总和相加(如果数字<10,则以英文显示)。在这种情况下:
各个数字的总和是:六
最后,我需要使用 2 个小数位对数字进行平均。在这种情况下:
平均值为:2.00
我已经完成了所有这些。除了:我的第一步是向后列出数字!它读取 10 位、100 位、1000 位等。例如:
请输入整数:123
您已输入:三二一
我对这部分赋值的条件是,我只能使用一个 switch 语句,并且我必须使用一个 switch 语句(这意味着需要一个循环(我选择了 do))。我也可能不使用数组。但最后,也是最重要的一点,我可能不会反转输入数字(这是该作业第一个版本的解决方案)。如果我能做到这一点,我就不会在这里。
这是相关的代码摘录。
#include <stdio.h>
int main(void)
{
int userinput, digit
printf("Please input a number:");
scanf("%d", &userinput);
printf("You have entered: ");
if (userinput < 0)
{
printf("Negative ");
userinput = -userinput;
}
do
{
digit = userinput%10;
switch (digit)
{
case 0:
{
printf("Zero ");
break;
}
case 1:
{
printf("One ");
break;
}
case 2:
{
printf("Two ");
break;
}
case 3:
{
printf("Three ");
break;
}
case 4:
{
printf("Four ");
break;
}
case 5:
{
printf("Five ");
break;
}
case 6:
{
printf("Six ");
break;
}
case 7:
{
printf("Seven ");
break;
}
case 8:
{
printf("Eight ");
break;
}
case 9:
{
printf("Nine ");
break;
}
default:
{
break;
}
}
userinput = userinput/10;
} while (userinput > 0);
printf("\n");