После ввода дробных чисел, данные не заносятся в переменные - C (СИ)
Формулировка задачи:
Пишу лабу для универа. Никогда не думал, что возникнут затыки на таком:
После ввода целых чисел все нормально, считаются как надо.
Но после ввода дробных чисел, данные во-первых не заносятся в переменные, во-вторых
не понимаю че попадает в поток, за счет чего следующий scanf даже не предлагает мне ввести данные,
мол он уже и так что-то прочитал и уже последний scanf опять спрашивает, что ввести?
Помогите разобраться.
#include <stdio.h>
#include <string.h>
#include <locale.h>
int main(int argc, char **argv)
{
// #1 Сумма трех чисел введенных с клавиатуры
int arg1 = 0, arg2 = 0, arg3 = 0;
double darg1 = 0, darg2 = 0, darg3 = 0;
// #2 Форматированный вывод
char st1[50], st2[50], st3[50];
int x = 0, y = 0, z = 0;
// #1
setlocale(LC_ALL, "Russian_Russia.1251");
printf("Введите 3 целых числа: ");
scanf("%d %d %d", &arg1, &arg2, &arg3);
printf("Сумма чисел равна: %d\n\n", (arg1 + arg2 + arg3));
printf("Введите 3 числа с плавающей точкой: ");
scanf("%lf %lf %lf", &darg1, &darg2, &darg3);
printf("Сумма чисел равна: %f\n\n", (darg1 + darg2 + darg3));
// #2
printf("Введите 3 целых числа: ");
scanf("%d %d %d", &x, &y, &z);
printf("\nВведите 3 строки: ");
scanf("%50s", &st1);
scanf("%50s", &st2);
scanf("%50s", &st3);
printf("%55s%d\n%55s%d\n%55s%d\n", st1, x, st2, y, st3, z);
return 0;
}Решение задачи: «После ввода дробных чисел, данные не заносятся в переменные»
textual
Листинг программы
printf("Введите 3 числа с плавающей точкой: ");
scanf("%lf %lf %lf", &darg1, &darg2, &darg3);
Объяснение кода листинга программы
- Вводится строка с приглашением к вводу трех чисел с плавающей точкой.
- Используется функция scanf для чтения трех чисел с плавающей точкой.
- Введенные числа сохраняются в переменных darg1, darg2 и darg3.