将程序返回主菜单

问题描述 投票:-1回答:1

我想创建一个程序,让用户可以选择构建歌曲(让用户输入一个持续时间和频率到一个数组中,然后选择选项b,播放该频率和持续时间)。我遇到的问题是让程序正确返回主菜单并让用户选择一个选项。

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

int main(void)
{
    int i = 0;
    char menu, a, A, b, B, c, C;
    int duration[100];
    float frequency[100];

    printf("a. Build the song\n");
    printf("b.Play the song\n");
    printf("c. Quit\n");

    printf("Please enter an option: ");
    scanf(" %c", &menu);

    if (menu == 'a' || menu == 'A') {

        printf("Please enter a frequency: ");
        scanf("%f", &frequency[i]);
        printf("Please enter a duration: ");
        scanf("%d", &duration[i]);

        system("cls");
    }

    else if (menu == 'b' || menu == 'B') {
        Beep(frequency[i], duration[i]);
        system("cls");

        return menu;
    }
    else if (menu != 'a' || menu != 'A' && menu != 'b' || menu != 'B' && menu != 'c' || menu != 'C') {
        while (menu != 'a' || menu != 'A' && menu != 'b' || menu != 'B' && menu != 'c' || menu != 'C') {

            printf("\n\nSorry that an invalid input\n\n");
            printf("a. Build the song\n");
            printf("b.Play the song\n");
            printf("c. Quit\n");

            printf("Please enter an option: ");
            scanf(" %c", &menu);
        }
    }
    else if (menu == 'c' || menu == 'C') {
        return 0;
    }
    system("pause");
}
c
1个回答
2
投票

您必须在循环中放置需要再次使用的代码。你需要一个带有检查变量的while循环(你已经拥有它)。

例:

// print menu
// get input
// check if input is valid
while(menu != 'c')
{
    //your code here

     // print menu
    // get input
   // check if input is valid
}
© www.soinside.com 2019 - 2024. All rights reserved.