c++ - 在 C 中的 switch 语句中写入多个内容

标签 c++ c switch-statement

所以,如果用户说 52 但我无法让它通过我的 0-9,我需要让我的 switch 语句通过并写出五二。如果他们输入 0-9,它就可以完美工作,但如果我尝试输入任何超过该数字的数字,它就会变成空白。帮忙!

#include <stdio.h>

int main (void)
{

        int x;

        printf("Please enter an integer: ");
        scanf("%d", &x);

        printf("\nYou have entered:\n\n");

        for(x;x<0;x++);

        switch (x)

        {
        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;
        }

        printf("\n\n");



        return 0;
}

最佳答案

do {
  switch (x%10) {
    ...
  }
  x = x / 10;
} while (x>0) ;

或者使用递归以正确的顺序获得它

void f(int x) {
  if (x==0) return;
  f(x/10);
  switch(x%10) { ... }
}

关于c++ - 在 C 中的 switch 语句中写入多个内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19843504/

相关文章:

c++ - 为什么 std atomic 将 5 插入堆栈

c++ - 在 C++ 中与字节、 block 、编码/解码混淆

c++ - 将类构造函数作为方法调用

ruby - 为什么 Ruby 案例不能与类一起使用?

c - 具有重叠操作的 Switch 中的多个案例

c++ - 如何根据变量的值运行不同的函数?

c - 使用 2D 矩阵的 MPI_Sendrecv 问题

有人可以修复我创建的这个 for 循环吗

c - C for Windows 32 控制台应用程序中的计时器事件

c# - 换出数千个值的效率