Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2013, 19:15   #1
VASwko
 
Регистрация: 14.05.2013
Сообщений: 9
По умолчанию Не работает цикл

Код:
int m,n,k,s,c;
	system("chcp 1251 >nul");
	m = 10, n = 100;
	k = 0, s = 0;
	
	for (c = m; c <= n; ++c) 
	{
		if ((m % 3) == '0') {
		k++;
		printf("%d делится на 3", c);
		s = s + c;
		}
	}

	printf("В диапазоне от %d до %d чисел, кратных 3м - %d, сумма этих чисел %d \n", m,n,k,s);
	system("pause");
что тут не так? цикл не запускается... сумма и кол-во - по нулям...
VASwko вне форума Ответить с цитированием
Старый 20.05.2013, 19:21   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
что тут не так? цикл не запускается... сумма и кол-во - по нулям...
1) Освойте отладку программ. Например, можно в тело цикла добавить printf и убедиться, что цикл "запускается".
2) Не путайте нумерал 0 (который есть целое число 0x00000000) и символьный литерал '0' (который есть код печатного символа "ноль", обычно равный 0x30).
Abstraction вне форума Ответить с цитированием
Старый 20.05.2013, 19:25   #3
VASwko
 
Регистрация: 14.05.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
1) Освойте отладку программ. Например, можно в тело цикла добавить printf и убедиться, что цикл "запускается".
2) Не путайте нумерал 0 (который есть целое число 0x00000000) и символьный литерал '0' (который есть код печатного символа "ноль", обычно равный 0x30).
у меня так и было изначально, просто '0' я решил попробовать после.. еще одна странность - у меня все заработало... вопрос - почему?) раньше не работало))) Код не трогал, лишь добавил priintf в тело цикла...
VASwko вне форума Ответить с цитированием
Старый 20.05.2013, 19:29   #4
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
у меня все заработало... вопрос - почему?) раньше не работало))) Код не трогал, лишь добавил priintf в тело цикла...
Чудес не бывает. Но, если Вы не предоставите нерабочий код, я при всём желании не смогу сказать, что послужило причиной его неработоспособности.
Abstraction вне форума Ответить с цитированием
Старый 20.05.2013, 19:34   #5
VASwko
 
Регистрация: 14.05.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Чудес не бывает. Но, если Вы не предоставите нерабочий код, я при всём желании не смогу сказать, что послужило причиной его неработоспособности.
честное слово - совсем не трогал код... Да как он не работал, открывал консоль и все... молчал.. Может думал?)
VASwko вне форума Ответить с цитированием
Старый 20.05.2013, 22:35   #6
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

(m % 3) == '0'
Что-то здесь не так, не находите?
Igor95 вне форума Ответить с цитированием
Старый 20.05.2013, 23:11   #7
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
честное слово - совсем не трогал код... Да как он не работал, открывал консоль и все... молчал.. Может думал?)
Чудес - не бывает. Конкретно данное явление, видимо, останется необъяснённым.
Хе, вспоминается, как я ломал голову над двумя make-файлами, полученными друг из друга методом Copy-Paste. Всё отличие между ними было в том, что один работал, а другой нет.
Abstraction вне форума Ответить с цитированием
Старый 21.05.2013, 07:53   #8
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

перекомпилил мож все?
Kukurudza вне форума Ответить с цитированием
Старый 23.05.2013, 02:48   #9
taniushska
Новичок
Джуниор
 
Регистрация: 23.05.2013
Сообщений: 5
По умолчанию

C printf проверяйте
taniushska вне форума Ответить с цитированием
Старый 23.05.2013, 11:45   #10
Airhand
Пользователь
 
Аватар для Airhand
 
Регистрация: 23.08.2011
Сообщений: 55
По умолчанию

Нельзя в C++ так сравнивать: (m % 3) == '0'. Вам же Igor95 написал. В итоге сравнивается остаток от деление на 3 с адресом.
"Пока бабка не смоет косметику, русский мужик не перекрестится" (C) Кто-то
Airhand вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает цикл -=DeS=- Общие вопросы Delphi 6 17.03.2013 14:45
Цикл не работает Faridik Общие вопросы по Java, Java SE, Kotlin 1 14.08.2011 12:14
Не работает цикл Lisёноk Помощь студентам 5 23.03.2010 21:39
Цикл не работает doniyor Общие вопросы Delphi 1 06.12.2009 15:52
Цикл не работает...? Иринкаа Помощь студентам 6 17.11.2007 00:27