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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2018, 23:19   #21
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

по сути он работает так что пока не встретит конец он берет предыдущий элемент и складывает field в S после возвращает
HelloVikiend вне форума Ответить с цитированием
Старый 04.06.2018, 23:39   #22
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Но S то у вас указатель, т.е. фактически ваш список, и его вы зашвыриваете фиг знает куда.
p51x на форуме Ответить с цитированием
Старый 04.06.2018, 23:41   #23
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Я не понимаю, что значит я S куда-то зашвыриваю? Я же просто в него суммирую, разве нет?
HelloVikiend вне форума Ответить с цитированием
Старый 04.06.2018, 23:44   #24
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

S - УКАЗАТЕЛЬ, АДРЕС и кодгда вы "в него суммируете" он и улетает
p51x на форуме Ответить с цитированием
Старый 05.06.2018, 00:07   #25
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Код:
void summ(list*tail)
{
	int sum = 0;
	list *el = tail;
	while (el != NULL)
	{
		sum = sum + el->field;
		el = el->next;
	}
	printf("%i\n", sum);
}
Суммирует один список, а как два?
HelloVikiend вне форума Ответить с цитированием
Старый 05.06.2018, 00:14   #26
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Правда через return не возвращает, как сделать с указателем я так и не понял
HelloVikiend вне форума Ответить с цитированием
Старый 05.06.2018, 00:23   #27
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Код:
int summ(list*tail)
{
	if (!tail)
		return 0;
	list *tmp = tail;
	int sum = 0;
	while (tmp->next != tail)
	{
		sum += tmp->field;
		tmp = tmp->next;
	}
	return sum;
}
Таким образом ошибку выдает
Когда так вызвваю
Код:
	s = summ(head);
	printf("%d", s);
	listprint(head);
HelloVikiend вне форума Ответить с цитированием
Старый 05.06.2018, 00:37   #28
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Это будет продолжаться вечно... Я так понял посты вы не читаете, алгоритм не знаете или не повторяли. Давайте так: без программирования, без кода, по шагам расскажите, как будет складывать: [1][4][5][2] и [3][4][8][9]. Вот прям как для дебила - ставлю палец сюда, делаю то и то, и т.д.
p51x на форуме Ответить с цитированием
Старый 05.06.2018, 00:38   #29
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Код:
int summ(list*tail)
{
	int sum = 0;
	list *el = tail;
	while (el != NULL)
	{
		sum = sum + el->field;
		el = el->next;
	}
	//printf("%i\n", sum);
	return sum;
}
Код:
int main() {
	list *head=NULL, *cur=NULL, *head2=NULL;
	int num,x1,s,s1;
	//scanf("%d", &num);
	//head = init(num);
	//cur = head;
	scanf("%d", &num);
while(num!=-9999){
	add(&head, &cur, num);
		scanf("%d", &num);
	}
	listprint(head);
	head2 = 0;
	scanf("%d", &x1);
	while (x1 != -9999)
	{
		add(&head2, &cur, x1);
		scanf("%d", &x1);
	}
	listprint(head2);
	s=summ(head);
	s1 = summ(head2);
	printf("%i\n", s+s1);
А как сделать так чтобы оно позволяло выводить такие вот числа? 14263751237617836712637162
HelloVikiend вне форума Ответить с цитированием
Старый 05.06.2018, 00:41   #30
HelloVikiend
Пользователь
 
Регистрация: 02.11.2017
Сообщений: 33
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
[1][4][5][2] и [3][4][8][9]
идем с конца, 9+2 1 мы пишем 1 запомнили, 6+8 мы пишем 4 1 запомнили 4+4 пишем 9 и плюс 1+3 = 4 = 4941
HelloVikiend вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно. nadyaH Помощь студентам 10 29.10.2013 09:08
Сложить два 48 разрядных числа @Серж@ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 16.12.2011 20:17
MMX сложить два числа gansm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 13 29.10.2010 05:16
Макрос: сложить два числа белочка Microsoft Office Excel 6 23.12.2009 22:02
Сложить два числа iwaniwan Win Api 3 23.04.2009 06:27