1

Нужно ввести и вывести следующие переменные: ’E’; ’Меня зовут <фамилия и имя>’; 727, –968; 374.652, –776.23; 108. Корректно выводятся только E, 727, -968. Что нужно исправить, чтобы все переменные выводились правильно?

#include <stdio.h>
#include <locale.h>

int main() { setlocale(LC_ALL, "RU"); char g; char a[20], b[20]; float f, e; int c, d, h;

scanf_s(&quot;%c&quot;, &amp;g);
printf(&quot;%c \n&quot;, g);

scanf_s(&quot;%s %s&quot;, &amp;a, &amp;b);
printf(&quot;Меня зовут %s %s \n&quot;, a, b);

scanf_s(&quot;%d&quot;, &amp;c);
printf(&quot;%d \n&quot;, c);

scanf_s(&quot;%d&quot;, &amp;d);
printf(&quot;%d \n&quot;, d);

scanf_s(&quot;%f&quot;, &amp;f);
printf(&quot;%.3f \n&quot;, f);

scanf_s(&quot;%f&quot;, &amp;e);
printf(&quot;%.2f \n&quot;, e);

scanf_s(&quot;%d&quot;, &amp;h);
printf(&quot;%d \n&quot;, h);

return 0;

}

1 Answers1

2

Ну, scanf_s хочет еще и размер данных. Так что нужны

scanf_s("%c", &g,1);

scanf_s("%s %s", a, 20, b, 20);

А для верного ввода-вывода чисел с плавающей точкой, раз уж вы объявили локаль "ru", надо использовать в таких числах не точку, а запятую...

Harry
  • 221,325
  • Все работает, кроме вывода имени. Там же выводятся какие то каракули. – дмитрий Jan 09 '22 at 16:30
  • А вот насчет каракулей вам сюда: https://ru.stackoverflow.com/q/459154/195342 – Harry Jan 09 '22 at 16:40