Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 09.04.2016, 23:41   #1 (permalink)
Teosa
Новичок
 
Регистрация: 09.04.2016
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Сумма цифр числа в цикле for. Си

Доброго времени суток,
Не могу найти проблему в коде, кусок с подсчетом чисел делимых на 3 и 7 работает нормально, но как только я добавляю в цикл подсчет чисел, сумма цифр которых делится на 16 - пустой экран. Помогите, пожалуйста, найти ошибку.

/*Вычислить сумму натуральных чисел от 0 до 1000, удовлетворяющих условиям:
делятся на 3 и 7 и имеют сумму цифр равную 16.*/
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
int main() {
int ss=0,s=0, i, n = 1000;
int g,sum=0,k=0;

for (i = 0; i < n; ++i) //counter
{
if (i % 3 == 0 && i % 7 == 0) //dividing
{
s = s + i;
++ss;
}

////
g = i;
while (g != 0) //summ
{
sum += n % 10;
n /= 10;
}
if (sum == 16)
++k;
sum = 0;

}
printf( "%d - sum of numbers dividing on 7 and 3 \n"
"%d - count of numbers dividing on 7 and 3\n"
"%d - count of numbers which amount in figures is equal 16", s,ss,k);
getch();
return 0;
}
Teosa вне форума   Ответить с цитированием

Старый 09.04.2016, 23:41
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Прочтение ранее созданных на форуме тем очень помогает

Паскаль. Проверить наличие цифр в записи числа
Паскаль. Сумма цифр числа
В файл записать числа, у которых равна сумма цифр целой и дробной части .
Программа вычисления количества цифр в записи натурального числа
Паскаль: две задачи (сумма и нахождение натурального числа из заданных)

Старый 10.04.2016, 09:43   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Да потому что вот здесь:
Цитата:
Сообщение от Teosa Посмотреть сообщение
g = i;
while (g != 0) //summ
{
sum += n % 10;
n /= 10;
}
путаница!
Надо:

g = i;
while (g != 0) //summ
{
sum += g % 10;
g/= 10;
}
Vladimir_S вне форума   Ответить с цитированием
Старый 10.04.2016, 11:03   #3 (permalink)
Teosa
Новичок
 
Регистрация: 09.04.2016
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое ) Надо мне быть внимательней
Teosa вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 20:32.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.