Не работает код на C
#include <math.h> // подключение библиотеки математических функций
#include <stdio.h> // подключение библиотеки функций ввода-вывода данных
#include <windows.h> // подключение библиотеки функций, связанных с ОС Windows
int main() {
SetConsoleOutputCP(1251); //Настройка консоли Windows для корректной работы с русскими символами
printf("Введите значение переменной n="); //Вывод на экран текстовой строки
int n; // Объявление переменной "n" целочисленного типа
scanf("%f",&n); // Запрос пользователю ввести целочисленное число с последующей записью введенного числа в качестве значения переменной n
int i;
int a;
a=0;
i=1;
do
{
i=i+1;
printf("Введите значение переменной a(%u)=",i);
scanf("%f",&a);
}
while (i<=n);
return 0;
}
Не завершается, когда i становится больше n.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Что вы хотите...
int n; // Объявление переменной "n" целочисленного типа
scanf("%f",&n);
Вводите как float - вот и получается n совершенно нелепым: представления в памяти int и float кардинально различны...
Вот такой код на грани фола — гуру в стандарте заплюют, но он хорошо показывает, каким становится n при таком вводе: https://ideone.com/Hsyv57