Я делаю обычный базовый c калькулятор на Simple C. Я использовал double для хранения чисел, и я ввожу 9 и 81 как числа, но код принимает некоторые случайные числа и использует их для вычисления ответа. Вот код:
#include <stdio.h>
int main(void){
double i,l,j;
char k;
loop: printf("Enter integer 1 : ");
scanf("%i",&i);
printf("Enter integer 2 : ");
scanf("%i%*c",&j);
printf("Enter code for operation p = +, m = -, s = *, 4 = d : ");
scanf("%c%*c",&k);
switch(k){
case 'p' : l = i + j; printf("%d + %d = %d\n",&i,&j,&l);
break;
case 'm' : l = i - j; printf("%d - %d = %d\n",&i,&j,&l);
break;
case 's' : l = i * j; printf("%d * %d = %d\n",&i,&j,&l);
break;
case 'd' : l = i / j; printf("%d / %d = %d\n",&i,&j,&l);
}
exit: printf("enter \"r\" to continue or \"x\" to exit.....\n");
char exit_v;
scanf("%c" , &exit_v);
switch(exit_v){
case 'r':goto loop;
break;
case 'x':return 0;
break;
default: { printf("Enter valid arguments..." );
goto exit;}
}
}
И что будет на выходе:
Enter integer 1 : 9
Enter integer 2 : 81
Enter code for operation p = +, m = -, s = *, 4 = d : p
-511875960 + -511875976 = -511875968
enter "r" to continue or "x" to exit.....
x
[Process completed - press Enter]
Почему он принимает случайные целые числа в качестве входных данных, когда я ввожу число в диапазоне?