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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 15:48   #31
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Код:
i>k+1
Это выражение не меняет ни i, ни k. С учётом того, что перед этим i и k объявлены неинициализированными, результат работы функции непредсказуем.

Ещё раз: когда Вы объявляете в функции локальную переменную, это совершенно новая переменная, ей нет никакого дела до того, что где-то ещё есть другая переменная с тем же именем. Для того, чтобы вывести массив, достаточно знать, где он начинается и сколько в нём аргументов. Для того, чтобы обнулить все элементы от (k+1)-го и дальше, функция должна как-то получить себе информацию о том, чему равно k.
И следите внимательно за тем, что индексация элементов в массивах C идёт от 0!

Последний раз редактировалось Abstraction; 09.11.2011 в 15:55.
Abstraction вне форума Ответить с цитированием
Старый 09.11.2011, 15:57   #32
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

Нужно вставить еще цикл?
Код:
for (i=0;i<length;i++){
for (i>k+1;i<length;i++)
{
array[i]=0;
}
}
(=Hello=) вне форума Ответить с цитированием
Старый 09.11.2011, 16:12   #33
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

Цитата:
функция должна как-то получить себе информацию о том, чему равно k
А это делается с помощью указателей?
(=Hello=) вне форума Ответить с цитированием
Старый 09.11.2011, 16:21   #34
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Попробуйте вначале комментариями обозначить, что Вы хотите сделать. Посмотрите на эквивалентное преобразование for с помощью goto на предыдущей странице, попробуйте написать Ваш цикл через него. Вообще, что, по-Вашему, означает этот набор инструкций:
Код:
for (i>k+1;i<length;i++)
{
array[i]=0;
}
?

Цитата:
А это делается с помощью указателей?
Зачем? Есть функция, у неё есть аргументы. Обычно имеет смысл делать так, чтобы все параметры выполняемой функцией задачи она получала через аргументы. В чём состоит задача той функции, которую Вы хотите написать?
Abstraction вне форума Ответить с цитированием
Старый 09.11.2011, 16:26   #35
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

На интервале от k+1 до length заменяю все значения элементов на 0.
Допустим я нахожу сумму элементов в группе = 7, и следующий элемент после группы заменяю на 7, а остальные элементы, следующие за 7-кой на 0.
(=Hello=) вне форума Ответить с цитированием
Старый 09.11.2011, 16:32   #36
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

Функция должна заменять следующий элемент после группы суммой элементов в группе, а элементы после суммы - заменять нулями и выводить полученный массив.
(=Hello=) вне форума Ответить с цитированием
Старый 09.11.2011, 16:47   #37
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Функция должна заменять следующий элемент после группы суммой элементов в группе, а элементы после суммы - заменять нулями и выводить полученный массив.
Ага. А "группа" - это первые сколько-то элементов?
Тогда что есть в этой задаче? Первое, понятно, массив (начало и длина). Второе - размер группы. Третье... собственно, всё, параметры кончились. То есть, должно быть три аргумента.
Цитата:
На интервале от k+1 до length заменяю все значения элементов на 0.
То есть, если массив называем array, то нужно сделать array[k+1]=0; array[k+2]=0;... array[length-1]=0.
Если есть желание заменить индексы на i, то надо позаботиться о том, чтобы сначала i стало равно k+1, а потом прерваться, когда i дойдёт до length.
Как выглядит приравнивание i k+1?
Abstraction вне форума Ответить с цитированием
Старый 09.11.2011, 16:56   #38
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

Цитата:
А "группа" - это первые сколько-то элементов?
Да.
Цитата:
Как выглядит приравнивание i k+1?
Не понял
(=Hello=) вне форума Ответить с цитированием
Старый 09.11.2011, 17:24   #39
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Я хочу, чтобы в i оказалось значение, равное groupSize+1 (в предположении, что groupSize у меня уже задано). Какой строкой кода на языке C++ это можно сделать?
Abstraction вне форума Ответить с цитированием
Старый 09.11.2011, 17:29   #40
(=Hello=)
Пользователь
 
Регистрация: 24.02.2011
Сообщений: 39
По умолчанию

Код:
i=groupSize+1
?)
(=Hello=) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование функций в C++ из DLL. VintProg Общие вопросы C/C++ 5 04.09.2011 03:02
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Использование функций prikolist Общие вопросы C/C++ 15 06.04.2009 18:42
Использование логических функций Клубничка Microsoft Office Excel 52 15.01.2009 15:01
использование процедур и функций! ...Оленька... Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 15:33