| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Замена одного массива другим |
| Автор: Winterlord 1.12.2008, 21:51 |
| Здравствуйте уважаемые программисты. Как заменить значения элементов исходного массива a1, a2,...an на новые значения a`1,a`2,...a`n, используя правило, что a`i равно сумме n членов аj-х при i=j.? Тоесть 1-й элемент нового массива будет равен сумме всех элементов кроме первого, второй: сумме элементов кроме первого и второго и так далее.... Если можете, помогите плз. Заранее благодарен |
| Автор: Dov 1.12.2008, 22:31 |
| А последний чему равен? |
| Автор: Winterlord 1.12.2008, 22:40 |
| Ну весь массив вводится произвольно, следовательно и последний элемент произвольный... |
| Автор: Dov 1.12.2008, 23:00 |
| Я имею ввиду, чему будет равен последний элемент нового массива? Добавлено через 26 секунд чему он должен быть равен? |
| Автор: Rififi 1.12.2008, 23:03 | ||
| это делается с использованием обычного двойного цикла... ... ну или при помощи лямбда-выражений из библиотеки http://www.boost.org примерно так...
|
| Автор: Winterlord 1.12.2008, 23:15 |
| Dov, Хороший вопрос... Скорее всего 0. Rififi, если не сложно, распиши плз как ты это сделал, ато не совсем понятно)Да и лучше с помощью обычного двойного цикла) ато с лямбда-выражениями пока проблемы^^ Вообще мб я ошибся в написании формулы, так что вот скрин на всякий случай: http://www.radikal.ru |
| Автор: Winterlord 1.12.2008, 23:29 | ||
Ну может я ошибся в написании корявым языком формулы) я написал "a`i равно сумме n членов аj-х при i=j", а может на самом деле это по другому читается) Добавлено @ 23:38 Dov, Всё-таки не совсем прально. Должны получаться значения: 14,12,9,5,0 (если последний исходный массив был 1,2,3,4,5), а получается 12,9,5,0,0 |
| Автор: Dov 1.12.2008, 23:40 |
| Winterlord, смешной ты хлопец. Добавлено через 2 минуты и 36 секунд я, например, не понимаю, что значит i = j. и что такое j вобще? |
| Автор: Winterlord 1.12.2008, 23:45 |
| Dov, что я не верно сказал?) Посмотри плз что ты не так написал. Повторюсь, нужно заменить элементы исходного массива а1,а2,...аn на новые значения а`1,a`2,...a`n, используя правило: http://www.radikal.ru |
| Автор: Dov 1.12.2008, 23:51 | ||
Winterlord, так у меня так и получается. А как ты выводишь? |
| Автор: Winterlord 1.12.2008, 23:52 |
говоря простым языком, первое число нового массива должно быть суммой всех чисел первого массива, кроме первого числа. Второе число нового массива будет суммой всех чисел первого массива кроме первого и второго, и так далее |
| Автор: Dov 1.12.2008, 23:57 | ||
Так, вроде бы, так и работает. |
| Автор: Winterlord 2.12.2008, 00:01 | ||
аааааа, точно)) Да, я непрально выводил. Теперь всё получается, Спасибо тебе огромное, а так же спс Rififi. Dov, Но на всякий случай, как ты выводишь? Добавлено через 4 минуты и 13 секунд и ещё напиши плз что именно ты делаешь вот тут:
Добавлено через 7 минут и 15 секунд просто хочу до конца разобраться... |
| Автор: Dov 2.12.2008, 00:18 | ||
|
| Автор: Winterlord 2.12.2008, 00:22 |
| Dov, Большое тебе спасибо, очень выручил;) |
| Автор: Winterlord 3.12.2008, 01:08 | ||
После доработок и переделываний получился вот такой вот код:
Уважаемые программисты, подскажите пожалуйста, как сделать так, чтобы мой массив (допустим a[N]={1,2,3,4,5})считывался с txt файла и изменённый массив записывался туда же или в новый файл? как ни пробую, не получается=( |
| Автор: Dov 3.12.2008, 20:15 | ||
Winterlord, но должен тебе сказать, что твой "переделанный" алгоритм не выдерживает никакой критики. Почему? Потому что он сумму каждый раз пересчитывает заново. Но, как говорится, хозяин - барин... Файл input.txt должен существовать на диске, в папке с этой прогой и иметь такие данные, например: 1 2 3 4 5 Файл output.txt будет создан этой программой. |
| Автор: Winterlord 3.12.2008, 22:10 |
| Dov, Большое тебе спасибо уже хз в какой раз) очень помог, теперь вроде всё работает как надо |
| Автор: Winterlord 9.12.2008, 22:33 |
| Dov, Это снова я=) Если тебе не сложно, подкорректируй пожалуйста ещё чуток программку (код в твоём предыдущем посте). Нужно её разбить на функции, тоесть первая функция чтения с файла, вторая функция сами операции с массивом и третья функция запись в файл. И нужно сделать так, чтобы не указывать в коде количество элементов массива, содержащегося в файле, а программка сама понимала сколько цифр содержит файл, тоесть если в файле 7 элементов, обрабатывала 7, если 10, то 10. Если найдёшь время, сделай плз. Заранее благодарен) |
| Автор: Winterlord 12.12.2008, 13:07 |
| Проблема уже разрешилась. Всё написал сам |
| Автор: Winterlord 14.12.2008, 15:06 | ||
| Проблема решилась, но не до конца. Если в файле больше десяти элементов, то программа читает только 10 элементов, если в файле меньше 10-ти элементов, то прога читает столько, сколько есть. Всё работает. Не получается сделать так, чтобы когда в файле вообще нет элементов, прога выдавала: "Нет элементов". Компилятор Dev C++. Если кто знает как сделать, напишите плз, бьюсь над этим уже довольно долго
|