Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
#1

Непростая задачка по массивам - C++

09.12.2013, 19:54. Просмотров 379. Ответов 5
Метки нет (Все метки)

Всем здравствуйте. Впервые на данном форуме, прошу помидорами не закидывать, в случае баяна.

Имеется задание, нужна помощь в составлении мат. модели и блок-схемы, код уж как-нибудь попытаюсь сам.

Рассматривая одномерные массивы A и B, содержащие n элементов, как последовательности цифр десятичной записи некоторых неотрицательных целых чисел (необязательно содержащих n разрядов), получить массив C - аналогичное
представление для суммы этих двух чисел. Предусмотреть, что в итоговом массиве может быть на 1 элемент больше.

Как я понял сам, на вход даны 2 одномерных целочисленных массива. В блоке операций что происходит, не пойму :/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 19:54     Непростая задачка по массивам
Посмотрите здесь:

По массивам... C++
Одна непростая зaдaчка C++
По массивам.... C++
C++ Очень непростая программа с класами!
C++ лаба по массивам
Вопрос по массивам С++ C++
Вопрос по Массивам. C++
C++ Лабораторная по массивам
C++ Простая задачка по массивам.
C++ Исчисление сумм и произведений (непростая задачка)
Непростая задача на графы. C++
C++ по массивам

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15276 / 9678 / 1436
Регистрация: 24.12.2010
Сообщений: 18,014
09.12.2013, 20:05     Непростая задачка по массивам #2
ArtBrytkov, Вспомни, как в школе учили столбиком складывать.

Добавлено через 2 минуты
Да, вот что важно. Массивы записаны от старшего разряда к младшему, или наборот?
Счет надо начинать с младших разрядов. И завести переменную "в уме"

Добавлено через 1 минуту
Цитата Сообщение от ArtBrytkov Посмотреть сообщение
Непростая задачка
Тут у нас говорят "Как два байта переслать"
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
09.12.2013, 20:22  [ТС]     Непростая задачка по массивам #3
Цитата Сообщение от Байт Посмотреть сообщение
Тут у нас говорят "Как два байта переслать"
На данном этапе и такие задачи кажутся невозможными для решения..

Цитата Сообщение от Байт Посмотреть сообщение
Да, вот что важно. Массивы записаны от старшего разряда к младшему, или наоборот?
Счет надо начинать с младших разрядов. И завести переменную "в уме"
Раз в условии задачи ничего не сказано, то можно и с младших начать.
Получается тогда так?
Возьмём первый элемент массива b, и будем сравнивать его со всеми элементами массива a. Если он больше очередного элемента массива a, то в массив c вставляем элемент массива a, если нет, то в массив c вставляем этот элемент, запоминаем номер очередного свободного элемента c и запоминаем номер последнего элемента массива a. Повторяем
эти операции для последующих элементов массива b.
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
09.12.2013, 20:31     Непростая задачка по массивам #4
идем по массивам пока один из них не кончится. складываем c[i]=(a[i]+b[i]+perenos)%10; perenos = (a[i]+b[i]+perenos)/10. Когда один массив кончился (например b), идем до конца второго массива, c[i]=(a[i]+perenos)%10; perenos = (a[i]+perenos)/10; когда дошли до конца второго, смотрим, если перенос равен нулю, то получили ответ, а если он равен единице, по приписываем единицу в конец массива С.
ArtBrytkov
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 26
10.12.2013, 09:49  [ТС]     Непростая задачка по массивам #5
Просидел ночь, так и не понял. Сделал вводы динамических массивов, как быть дальше?

Добавлено через 32 минуты
Что-то не то вышло
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "Mass.h"
int main ()
{
    int *a, *b, *c;
setlocale(LC_ALL,"Russian"); // Русский язык в коммандной строке.
    cout<<"Введите первый массив."<<endl;
    cout<<"Введите количество элементов массива"<<endl;
        cin>>n;
a=new int[n];
    cout<<"Введите элементы массива"<<endl;
for (int i=0; i<n; i++)
        cin>>a[i];
    cout<<"Введите второй массив."<<endl;
    cout<<"Введите количество элементов массива"<<endl;
        cin>>n;
b=new int[n];
    cout<<"Введите элементы массива"<<endl;
for (int j=0; j<n; j++)
        cin>>b[j];
int perenos=0;
c=new int[n+1];
for (int k=0; k<n+1; k++)
{
c[k]=(a[k]+b[k]+perenos)%10;
perenos = (a[k]+b[k]+perenos)/10;
}
cout<<"Массив С="<<c<<endl;
int k=0;
for (k=0; k<n+1; k++)
{ cout<<c[k]<<" ";
}
}
Байт
Эксперт C
15276 / 9678 / 1436
Регистрация: 24.12.2010
Сообщений: 18,014
10.12.2013, 11:35     Непростая задачка по массивам #6
ArtBrytkov, ты для обоих массивов используешь одну переменную n.
Yandex
Объявления
10.12.2013, 11:35     Непростая задачка по массивам
Ответ Создать тему
Опции темы

Текущее время: 03:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru