Столкнувшись с некоторыми проблемами в этой программе для разработки калькулятора, я попытался выполнить расчет для математической операции перед оператором switch. Результат печати только подсказывает неверную запись в моем операторе по умолчанию после ввода значения и математической операции.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
 // declare and initialise working storage
 char function;
 int num1, num2, sum, sub, multi, div, remainder;
 
 
 // prompt user to enter 2 number
 printf("Enter numbers and function: ");
 scanf("%d%c%d", &num1, &function, &num2);
 // calculation
 sum = num1 + num2;
 sub = num1 - num2;
 multi = num1 * num2;
 div = num1 / num2;
 remainder = num1 % num2;
 
 // print the result
 switch(function)
 {
 case '+':
 printf("The sum is %d\n", sum);
 break;
 case '-':
 printf("The subtraction is %d\n", sub);
 break;
 case '*':
 printf("The multiplication is %d\n", multi);
 break;
 case '/':
 if(num2 ==0)
 {
  printf("Cannot divide by 0!\n");
 }
 else
 {
  printf("The div is %d\n", div);
 }
 break;
 case '%':
  if(num2 ==0)
 {
  printf("Cannot divide by 0!\n");
 }
 else
 {
  printf("The remainder is %d\n", remainder);
 }
 break;
 
 default:
 printf("Invalid Entry!!!!!\n");
 break;
 
 }
 
 
 
 return 0;
}
Решение проблемы
%c читает символ, пробелы и вводы также являются символами, %d ждет только ввода int, поэтому каждый раз, когда вы хотите указать слишком разные числа, вы должны нажимать ввод или пробел, чтобы программа могла понять, чтобы прочитать следующий ввод int. Итак, если вы решите дать свои входные данные следующим образом: 1 + 3, программа понимает:
 
&num1 = 1, &num2 = 3, &function = (scpace). 
Если вы решите дать своим персонажам следующее: 1 + 3 (введите), он будет работать правильно, но это не удобный калькулятор. Что вы можете сделать, так это: 
printf("Введите числа: "); 
scanf("%d%d", &num1, &num2);// дать 5(пробел)2 или 5(enter)2 
scanf(%c,&enter); //&считывает ввод 
printf("Введите функцию: "); 
сканф("%с",
 
 
Комментариев нет:
Отправить комментарий