vjunk
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Alex37 D K Во первых, раз у тебя все числа целые, math.h тебе не нужен. Во вторых, int main(). void тоже будет работать, но по стандарту int. В третьих, для ввода целого числа спецификатор формата %d, а %f для ввода значения в переменную типа float. В четвертых, для того чтобы функция scanf могла записать значение в переменную, она должна получить указатель на переменную (&), а не ее значение. В пятых, ; после for() - это такая ошибка, которую можно искать очень долго, советую никогда после операторов for и while точку с запятой не ставить, а если нужен действительно пустой цикл, использовать или пустой блок {} или выражение 0; Программа: Код: #include <stdio.h> /* Функция вычисляет сумму цифр целого числа */ int digit_sum(int number) { int sum=0; while(number>0) /* Пока есть цифры */ { /* Получить младшую цифру и добавить к сумме */ sum+=number%10; /* Отбросить младшую цифру, уменьшив число в 10 раз */ number/=10; } return sum; } int main() { int i, N1, N2, R; printf ("\n Введите начальную точку промежутка \n"); scanf ("%d", &N1); printf ("\n Введите кончную точку промежутка \n"); scanf ("%d", &N2); printf ("\n Задайте натуральное число \n"); scanf ("%d", &R); for(i=N1; i<=N2; i++) { if(digit_sum(i)==R) printf("%d\n", i); } return 0; } | Кроме того, нужно проверять результат работы функции scanf - действительно-ли она получила требуемое значение, но мне еще и обработку ошибок писать лень. |