Есть ли простой способ вернуть пользователя в меню после каждого выбора? - PullRequest
0 голосов
/ 21 октября 2019

Моя программа должна попросить пользователя сделать выбор и запустить выбор перед возвратом в меню. Я полагаю, что мне нужны операторы break, но разве мне не нужно менять все операторы if для этого? Прямо сейчас он проходит все выборы сразу, не останавливаясь. Это легко исправить или я вернусь и перепишу каждое утверждение? Вот что у меня пока так:

#include <stdio.h>
#include <math.h>


int main()

{

int choice;
int i, j, k, l;
int num, num2, num3, num4;
int count = 0;

    printf("\t Menu \n");
    printf("1. Multiplication Table \n");
    printf("2. Even or Odd \n");
    printf("3. Number of Digits \n");
    printf("4. Triangle \n");
    printf("5. Exit \n");

    printf("Please choose a menu selection: \n");
    scanf("%d", &choice);

    if(choice = 1);
    {
            for(i = 1; i <= 12; i++)
            {
                    num = i;

            for(j = 1; j<=12; j++)
            {
                    printf("%d\t", (i*j));
            }

            printf("\n");
            }
    }

    if(choice = 2);
    {
            printf("Please enter a whole number: \n");
            scanf("%d", &num2);

            if(num2 % 2 == 0)
                    printf("%d is even. \n", num2);
            else
                    printf("%d is odd. \n", num2);
    }

    if(choice = 3);
    {
            printf("Enter a number: \n");
            scanf("%d", &num3);
    while(num3)
    {
            num3 = num3/10;
            count++;
    }
    printf("The total number of digits in the number is: %d \n", count);
    }

    if(choice = 4);
    {
            printf("Please enter a number for the height: \n");
            scanf("%d", &num4);

            for(k = 1; k <= num4; k++)
            {
            for(l = 1; l <= k; l++)
                    printf("# ");

            printf("\n");
            }
    }

    if(choice = 5)
    {
            printf("Thank you, you will now exit. \n");
    }
    else
    {
            printf("error \n");
    }

return 0;

}

1 Ответ

0 голосов
/ 21 октября 2019
#include <math.h>


int main()

{

int choice;
int i, j, k, l;
int num, num2, num3, num4;
int count = 0;

    do{
    printf("\t Menu \n");
    printf("1. Multiplication Table \n");
    printf("2. Even or Odd \n");
    printf("3. Number of Digits \n");
    printf("4. Triangle \n");
    printf("5. Exit \n");

    printf("Please choose a menu selection: \n");
    scanf("%d", &choice);

    switch(choice){

    case 1:
    {
            for(i = 1; i <= 12; i++)
            {
                    num = i;

            for(j = 1; j<=12; j++)
            {
                    printf("%d\t", (i*j));
            }

            printf("\n");
            }
    } break;

     case 2:
    {
            printf("Please enter a whole number: \n");
            scanf("%d", &num2);

            if(num2 % 2 == 0)
                    printf("%d is even. \n", num2);
            else
                    printf("%d is odd. \n", num2);
    }break;

   case 3:
    {
            printf("Enter a number: \n");
            scanf("%d", &num3);
    while(num3)
    {
            num3 = num3/10;
            count++;
    }
    printf("The total number of digits in the number is: %d \n", count);
    }break;

    case 4:
    {
            printf("Please enter a number for the height: \n");
            scanf("%d", &num4);

            for(k = 1; k <= num4; k++)
            {
            for(l = 1; l <= k; l++)
                    printf("# ");

            printf("\n");
            }
    }break;

    case 5:
    {
            printf("Thank you, you will now exit. \n");
    }break;
    }

 } while(choice < 5 && choice > 0);

    if(choice>5 || choice<=0)
    printf("error \n");


    return 0;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...