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

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

Войти
Регистрация
Восстановить пароль
 
АДМ
1 / 1 / 0
Регистрация: 04.12.2009
Сообщений: 13
#1

С++Дописать алгоритм - C++

05.12.2009, 07:28. Просмотров 368. Ответов 4
Метки нет (Все метки)

Заданы два массива{xi} и {yi} (i=от 1 до n).
Сформировать массив{cj} по правилу
cj=yi+xi,если xi>yi
cj=xi*max{yi} если xi<yi
пары xi=yi в формировании нового массива не участвуют.



...
C++
1
2
3
4
5
6
7
8
9
10
11
12
nt maxy=y[0];                 
for (int i=1;i<n;i++) 
if (maxy<y[i]) maxy=y[i];  //находим максимальное в массиве у
...
int j=0;
for (int i=0;i<n;i++) 
if (x[i]!=y[i]) j++;   //узнаем количество элементов в массиве с 
...
j=0;
for (int i=0;i<n;i++) 
{if (x[i]>y[i]) c[j++]=x[i]+y[i];
else if (x[i]<y[i]) c[j++]=x[i]*maxy;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2009, 07:28     С++Дописать алгоритм
Посмотрите здесь:

Дописать фаил C++
Дописать програмку C++
C++ C++ / дописать в текст
C++ Дописать код
Дописать программу на С++ C++
дописать прогу C++
C++ Дописать код
C++ дописать программу
Помогите дописать( исправить код) алгоритм C++
дописать задачу C++
C++ Дописать программу
C++ Дописать код

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
05.12.2009, 11:49     С++Дописать алгоритм #2
Подсчёт размера массива с можно запулить прямо в его вычисление:
C++
1
2
3
4
5
6
int csize=0;
for(int i=0; i<n; ++i)
    if(x[i]>y[i])
       c[csize++] = y[i] + x[i];
    else if(x[i]<y[i])
        c[csize++] = x[i]*maxy;
Так что тебе дорабатывать-то надо?
АДМ
1 / 1 / 0
Регистрация: 04.12.2009
Сообщений: 13
05.12.2009, 13:06  [ТС]     С++Дописать алгоритм #3
прошу прощение за свою неграмотность(программирование для меня это совсем новое) куда поставить часть твоего кода?вместо
C++
1
2
3
4
j=0;
for (int i=0;i<n;i++) 
{if (x[i]>y[i]) c[j++]=x[i]+y[i];
else if (x[i]<y[i]) c[j++]=x[i]*maxy;}
vova_c
5 / 5 / 0
Регистрация: 03.12.2009
Сообщений: 19
06.12.2009, 15:24     С++Дописать алгоритм #4
Nick Alte, Массив может быть ли бо статический либо динамический, а для этого надо знать сколько элементов массиве с будет! Подсчет он ведеться для дальнейшего создания массива:
C++
1
int []c=new int [j]
Nick Alte, чем отличаеться

C++
1
2
3
for (int i=0;i<n;i++) 
{if (x[i]>y[i]) c[j++]=x[i]+y[i];
else if (x[i]<y[i]) c[j++]=x[i]*maxy;}
от
C++
1
2
3
4
5
for(int i=0; i<n; ++i)
    if(x[i]>y[i])
       c[csize++] = y[i] + x[i];
    else if(x[i]<y[i])
        c[csize++] = x[i]*maxy;
?
Помойму переменной j и сsize))


З.Ы. пример АДМ, был взят из темы Алгоритмы массивов(одномерного и двумерного)
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
06.12.2009, 22:26     С++Дописать алгоритм #5
Заранее известно, что размер массива c не может превышать размеров x и y. Значит, можно выделить память соответствующего размера и не использовать часть. Чтобы знать, куда не соваться, и используется csize.
Впрочем, я и впрямь не слишком вглядывался в приведённый им код, вот и написал почти то же самое.
Ну а вообще становится просто неясен смысл вопроса. Какого чёрта лысого он хочет, задавая вопрос и тут же приводя решение? Так можно написать "Пожалуйста, помогите посчитать, сколько будет 2+2! Это 4, но я что-то не соображу, что к чему...". Ну и зачем оно всё?
Yandex
Объявления
06.12.2009, 22:26     С++Дописать алгоритм
Ответ Создать тему
Опции темы

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