Функция меню печати сохраняет печать после выбора - PullRequest
0 голосов
/ 29 ноября 2018

Эй, ребята, я должен был создать программу, которая была бы калькулятором, использующим функции, чтобы обеспечить результаты, я получил его, и все работает, но у меня есть небольшая проблема с функцией печати из всего, что смешно, дляПо какой-то причине я не могу понять, когда программа печатает решение, она также печатает первый выбор, который равен 1.Добавить, и я не могу понять, почему любой вклад будет высоко оценен, спасибо.ты вот мой код:

//Function to Add
int add (int a, int b);
//Function to Substract
int sub (int a, int b);
//Function to Multiply
int mul (int a, int b);
//Function to Divide
int div (int a, int b);
//Function to get remainder
int rem (int a, int b);
//Function to print menu
int printmenu();

//Begin main
int main()
{
    //Initialize Variables
    int num1=0;
    int num2=0;
    unsigned int selection =0;

    //Loop
    while ((selection=printmenu()) != 6)
    {
        switch (selection)
        {
        //Addition Case
        case 1: 
            printf("Enter two numbers: ");
            scanf("%d %d", &num1 , &num2 );
            printf("%d added to %d is %d",num1,num2,add(num1,num2));
            break;
        case 2:
            printf("Enter two numbers: ");
            scanf("%d %d", &num1 , &num2 );
            printf("%d substracted to %d is %d",num1,num2,sub(num1,num2));
            break;
        case 3:
            printf("Enter two numbers: ");
            scanf("%d %d", &num1 , &num2 );
            printf("%d multiplied to %d is %d",num1,num2,mul(num1,num2));
            break;  
        case 4:
            printf("Enter two numbers: ");
            scanf("%d %d", &num1 , &num2 );
            printf("%d divided to %d is %d",num1,num2,div(num1,num2));
            break;
        case 5:
            printf("Enter two numbers: ");
            scanf("%d %d", &num1 , &num2 );
            printf("%d divided to %d has a remainder of %d",num1,num2,rem(num1,num2));
            break;
        case 6:
            return 0;
        default:
            printf("That is not a valid choice.");
            break;
        }//End switch
    }//End while

    return 0;   
}//End main


//Function to add
int add (int a, int b)
{
    int total=0;
    total = a + b;
    return total;
}

//Function to substract
int sub (int a, int b)
{ 
    int total=0;
    total = a - b;
    return total;
}

//Function to multiply
int mul (int a, int b)
{
    int total=0;
    total = a * b;
    return total;
}

//Function to Divide
int div (int a, int b)
{
    int total=0;
    total = a / b;
    return total;
}

//Function to get Remainder
int rem (int a, int b)
{
    int total=0;
    total = a % b;
    return total;
}

//Function to Print Menu
int printmenu()
{
    int selection=0;
    //Print menu
    printf("1.Add\n");
    printf("2.Substract\n");
    printf("3.Multiply\n");
    printf("4.Divide\n");
    printf("5.Remainder\n");
    printf("6.Exit\n");
    printf("Selection: ");
    scanf("%d", &selection);
    return selection; 
}

1 Ответ

0 голосов
/ 29 ноября 2018

Когда вы печатаете результат операции, вы не включаете новую строку в конце вывода.Поэтому, когда вы печатаете меню, первая строка меню печатается на том же самом.

Добавить \n в конце каждого оператора печати результатов, например:

...