Top.Mail.Ru
Ответы
Аватар пользователя
13лет
Изменено

Цикл for на языке си/си++

Добрый день. только начинаю писать на си и не могу нигде найти решение проблемы. [ си/си++ ]

есть небольшая реализация цикла фор которая мне, ну не необходима я конечно могла бы заменить его другим циклом, но хочется разобраться.

double k = 3;
scanf("%d", &k);

////алгоритм проверки числа на простоту
for (int i = 1; i <= k; i++)
{
printf("_-=|0|=-_ %d/n", i) ;
}

собственно интересуют два вопроса.
1. почему какое бы значение переменнок К я не ввела с клавиатуры цикл выполняет 3 итерации
2.почему в процессе выполнения итераций цикла i всегда равна 0. Ну тут я принципе догадываюсь.

По дате
По рейтингу
Аватар пользователя
Новичок
13лет

Дык k описана как double, а в scanf подсовывается как int. scanf ничего не знает о типе аргумента и верит форматной строке. Если это безобразие выполняется на PC-подобной машине, то из-за внутреннего представления double в k оказывается число чуть больше 3.0 Вообще, дурной тон в for смешивать разные типы данных.

Аватар пользователя
Профи
13лет

ізвините но почему винаписали именна так ето мож записать подругму і лекше ...У вас код на С я так розумію..