IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Помогите исправить программу по одномерным массивам, Turbo C++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Одномерный массив, состоящий из n целых элементов, преобразовать таким образом, чтобы в первой его половине располагались элементы, стоявшие в нечётных позициях, а во второй половине - элементы, стоявшие в чётных позициях.

Я прогу написал, но она правильно преобразует только половину массива, а вторую половину она преобразует неправильно, так как после первого преобразования массив изменяется!!!!!Как это можно исправить?????

Вот программа:
# include <iostream.h>
# include <stdlib.h>
void main()
{
const int n=10;
int i,a[n];
cout<<"Isxodnii massiv:\n";
randomize();
for (i=0;i<n;i++)
{
a[i]=random(50)-25;
cout<<a[i]<<' ';
}
int m=0;
for (i=1;i<n;i+=2)
{
a[m]=a[i];
m+=1;
}
for (i=0;i<n;i+=2)
{
a[m]=a[i];
m+=1;
}
cout<<"Preobrazovannii massiv:\n";
for (i=0;i<n;i++)
cout<<a[i]<<' ';
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






В данном конкретном случае (число элементов четное) - вот так:
#include <iostream.h>
#include <stdlib.h>

int main() {

const int n=10;
int i, a[n];

cout << endl << "Isxodnii massiv:\n";
randomize();
for(i = 0;i < n; i++) {
a[i] = random(50)-25;
cout << a[i] << " ";
}

int T;
for(i = 0; i < n - 1; i += 2) {
T = a[i]; a[i] = a[i + 1]; a[i + 1] = T;
}
for(int k = 1; k <= n/2; ++k) {
T = a[k];
for(i = k + 1; i < n; ++i) a[i - 1] = a[i];
a[n - 1] = T;

}
cout << endl << "Preobrazovannii massiv:\n";
for(i = 0; i < n; i++) cout << a[i] << " ";
return 0;
}

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 7.04.2007 16:43) *

В данном конкретном случае (число элементов четное) - вот так:


А что если число элементов нечётное????? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Я сделал с помощью второго массива, но если в массиве нечётное количество элементов, например 11, то в преобразованном массиве выводится последний элемент, равный 1094!!!!! Кто-нибудь знает как исправить это?????

Вот программа:
# include <iostream.h>
# include <stdlib.h>
void main()
{
const int n=11;
int i,a[n],b[n];
cout<<endl<<"Isxodnii massiv:\n";
randomize();
for (i=0;i<n;i++)
{
a[i]=random(50)-25;
cout<<a[i]<<' ';
}
int x,j,m=0;
for (i=0;i<n/2;++i)
b[i]=a[2*i+1];
for (i=0;i<n/2;++i)
b[n/2+i]=a[2*i];
cout<<"Preobrazovannii massiv:\n";
for (i=0;i<n;i++)
cout<<b[i]<<' ';
int imax=0;
for (i=1;i<n;i++)
if (b[i]>b[imax]) imax=i;
cout<<"Nomer maksimalnogo elementa massiva:\n"<<imax;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Не ТЫ, а ТЕБЕ сделали...

Я уже ответил тебе на том форуме, сюда копировать не буду...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 7.04.2007 18:43) *

Я уже ответил тебе на том форуме, сюда копировать не буду...


Прога работает, большое спасибо за помощь! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 12:23
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name