при вводе числа с плавающей запятой (например, 48.3) результат отображается в 48.00 вместо 48.30, и всякий раз, когда я пытаюсь ввести строку с пустым пространством, программа заканчивается немедленно. Мне нужна помощь, как решить эту проблему?Обработка ввода пользователя
int integer;
char a[50];
float fnum;
char b[50];
printf("Please enter an integer : ");
scanf("%s",&a);
integer = atoi(a);
printf("\nPlease enter a floating-point number : ");
scanf("%s", &b);
fnum = atoi(b);
printf("Output : \n");
printf("%i + %.2f = %.2f \n", integer,fnum,(integer+fnum));
printf("%i - %.2f = %.2f \n", integer,fnum,(integer-fnum));
printf("%i * %.2f = %.2f \n", integer,fnum,(integer*fnum));
Введите целое число:.. 'Scanf ("% S", &a);' Да Нет .... – John3136
'atoi' возвращает' int' –
Вы должны начать с хорошей C учебник Спецификатор формата '% s' для' scanf' ожидает совпадения * символьного указателя * и используется для чтения * строк *. Спецификатор формата '% d' используется для целых чисел. Найдите время, чтобы прочитать« man scanf »(вы может потратить часы, фактически переваривая информацию) 'integer = atoi (a);' выглядит довольно бессмысленным, если вы ранее не объявляли int int, где-то. См. [** Как создать минимальный, полный и проверенный пример **] (http://stackoverflow.com/help/mcve). –