[英]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.