簡體   English   中英

在用戶不退出時在C中查找兩個數字的和,差等

[英]Find sum, difference, etc. for two numbers in C while user don't exit

我需要找到用戶輸入的兩個數字的總和,差異等。 但是程序首先顯示菜單,然后要求用戶輸入這些數字並進行操作。 在那之后,它應該詢問用戶是否要再次計算一些東西,以及是否希望使用舊數字或新數字來進行計算。

我是C語言的初學者,所以我需要一些幫助。 我在Cases遇到錯誤:

cfinal.c:49:14:警告:多字符常量[-Wmultichar]

還有這個:

cfinal.c:49:14:警告:溢出將案例值轉換為切換條件類型(21075至83)[-Wswitch]

出了點問題,我無法解決。 第二個問題是,我需要詢問用戶是否要重復一遍,是否選擇“是”,是否要使用新數字或以前計算中使用的數字來進行重復。 那是我什至沒有開始,我不知道怎么做。 謝謝。

到目前為止的代碼:

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

int main (void)
{
    char choice;                //Define choice character type
    int first_number, second_number, firstSquare, secondSquare, firstQube, secondQube, cont;  //define intigers
    printf("Select operation you would like to do by typing shortcut:\n");
    printf("SU - sum\n");
    printf("DI - difference\n");
    printf("MU - multiplication\n");
    printf("RA - ratio\n");
    printf("SS - Sum of Squares\n");
    printf("SQ - Sum of Qubes\n");
    printf("RS - Sum of Squares\n");
    printf("RQ - Sum of Qubes\n");
    choice = (char)toupper(getchar());
    getchar ();
    printf("Enter the first number: ");
    scanf("%d", &first_number);
    getchar ();
    printf("Enter the second number:");
    scanf("%d", &second_number);
    getchar ();
    firstSquare = first_number * first_number;
    secondSquare = second_number * second_number;
    firstQube = first_number * first_number * first_number;
    secondQube = second_number * second_number * second_number;
    printf("\n");
    printf("Result is");
    switch(choice)
    {
        case 'SU':
            printf("%d + %d = %d", first_number, second_number, first_number + second_number);
            break;
        case 'DI':
            printf("%d - %d = %d", first_number, second_number, first_number - second_number);
            break;
        case 'MU':
            printf("%d * %d = %d", first_number, second_number, first_number * second_number);
            break;
        case 'SS':
            printf("%d * %d + %d * %d = %d", first_number, first_number, second_number, second_number);
            break;
        case 'SQ':
            printf("%d * %d * %d + %d * %d * %d = %d", first_number, first_number, first_number, second_number, second_number, second_number, firstQube + secondQube);
            break;
        case 'RS':
            printf("(%d * %d) / (%d * %d) = %d", first_number, first_number, second_number, second_number, firstSquare / secondSquare);
            break;
        case 'RQ':
            printf("(%d * %d * %d) / (%d * %d * %d) = %f", first_number, first_number, first_number, second_number, second_number, second_number, firstQube / secondQube);
            break;
        case 'RA':
            if (second_number == 0)
                fprintf(stderr, "The divisor can't be 0");
            else
            {
                printf("%d / %d = %f", first_number, second_number, (double)first_number / second_number);
            }
            break;
        default :
            fprintf(stderr, "Invalid entry");
            break;
    }
    printf("\n");
    for (;;)
    {
      printf("Continue (Type Y for yes or N for no)? ");
      cont = toupper(getchar());
      getchar ();
      if (cont == 'Y')
          return main(); // the difference.
      else if (cont == 'N')
          return EXIT_SUCCESS;
    }
}

getchar返回單個字符。 如果要使用字符串“ xy”,“ d99”等,則必須讀取字符串。 如何從C中的控制台讀取一行?

其次,您無法打開需要執行的字符串

if(strcmp(input,"SU")==0)
{
....
}
else if (strcmp(input, "DQ") == 0)
{
}
...
else
{
... error

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM