Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
#1

Удалить все нечётные элементы массива и отсортировать - C++

24.10.2010, 23:39. Просмотров 1222. Ответов 7
Метки нет (Все метки)

1. Удалить все нечётные элементы массива
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
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
     {
clrscr();
int a[100];
int n;
cout << "\nEnter the size of array: ";
cin >> n;
     for (int i=0; i<n; i++)
     {
a[i]=rand()%100-50;
cout << a[i] << " ";
}cout<<endl;
{
int j=0,b[100];
for (i=0; i < n; i++)
if(a[i]%2!=0);
{
b[j]=a[j];j++;
}
{
n=j;
for (i=0; i < n; i++)
a[j]=b[i];
cout << b[i] << " ";
getch();
}}}

Вместо нового массива выбивает большое число и всё.



2.Сортировать методом простого обмена!

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
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
     {
clrscr();
int a[100];
int n;
cout << "\nEnter the size of array: ";
cin >> n;
     for (int i=0; i<n; i++)
     {
a[i]=rand()%100-50;
cout << a[i] << " ";
}
int j=0;
for (i=1; i < n; i++)
for (int j=n-1; j >= i; j--)
if(a[j]<a[j-1])
{
int r=a[j];a[j]=a[j-1];a[j-1]=r;
}
cout<<a[j]<<" ";
 
getch();
}
По теории должно перебирать все жлементы, а у меня только самый меньший элемент перемещает в самое право и всё, делал по примеру из методички!

ЧТО Я ДЕЛАЮ НЕ ТАК??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 23:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить все нечётные элементы массива и отсортировать (C++):

Отрицательные элементы массива заменить на их абсолютную величину и все нечётные элементы на корень - C++
Дан массив целых чисел. Каждый отрицательный элемент заменить на его абсолютную величину. Все элементы с нечётными номерами заменить на их...

Удалить все нечётные строки двумерного массива - C++
Задан двумерный массив чисел. Требуется написать программу: 1. Удалить все нечётные строки двумерного массива. 2. После той строки,...

Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные - C++
Создать список действительных чисел. Удалить четные элементы списка и перемножить все положительные нечётные. начал писать код,но...

Заменить все отрицательные элементы массива их квадратами и отсортировать все элементы по возрастанию - C++
Помогите пожалуйста заменить все отрицательные элементы массива их квадратами и отсортировать все элемнты по возрастанию. Программу я...

Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во второ - C++
Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными...

Отсортировать чётные элементы по возрастанию, а нечётные по убыванию - C++
Вот условие(могу кое где ошибаться в правильности постановки задачи) Составить одномерный массив, в котором бы выводилось 20(или более)...

7
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
24.10.2010, 23:53 #2
По поводу второй задачи:
сначало Вы с помощью rand() заполняете массив значениями и выводите на экран.
После сортировки Вы просто выводите один элемент массива на экран (в той же строке):
C++
1
cout<<a[j]<<" ";
Нужно выводить по аналогии с первым выводом на экран. А сортировка у Вас правильная.
0
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
24.10.2010, 23:57  [ТС] #3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
По поводу второй задачи:
сначало Вы с помощью rand() заполняете массив значениями и выводите на экран.
После сортировки Вы просто выводите один элемент массива на экран (в той же строке):
C++
1
cout<<a[j]<<" ";
Нужно выводить по аналогии с первым выводом на экран. А сортировка у Вас правильная.

ну вот к примеру я вывел как надо , запускаю программу и ввожу количество чисел массива 5, выдаёт массив 4 -20 32 40 6 и в конце дописует -2,
в теории написано что простой обмен - это Сравниваются и меняются местами пары элементов, начиная с последнего. В резуль-тате самый маленький элемент массива оказывается самым левым элементом массива. Про-цесс повторяется с оставшимися элементами массива.
Следовательно либо я просто не понимаю как она работает, либо оно не правильно работает, что ли!
0
TheMachinist
244 / 176 / 15
Регистрация: 14.06.2010
Сообщений: 422
25.10.2010, 00:04 #4
Сперва код нормально напиши - потом пивасик пей
1
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
#include<iostream>
#include<conio.h>
using namespace std;
void main()
     {
int a[100];
int n; int i;
cout << "\nEnter the size of array: ";
cin >> n;
     for (int i=0; i<n; i++)
     {
a[i]=rand()%100-50;
cout << a[i] << " ";
}cout<<endl;
 
int b[100]; int j = 0;
for (i=0; i < n; i++){
if(a[i]%2!=0)
{
b[j]=a[i];j++;
}
}
 
for (i=0; i < j; i++)
cout << b[i] << " ";
getch();
}
1
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
25.10.2010, 00:32  [ТС] #5
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Сперва код нормально напиши - потом пивасик пей
1
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
#include<iostream>
#include<conio.h>
using namespace std;
void main()
     {
int a[100];
int n; int i;
cout << "\nEnter the size of array: ";
cin >> n;
     for (int i=0; i<n; i++)
     {
a[i]=rand()%100-50;
cout << a[i] << " ";
}cout<<endl;
 
int b[100]; int j = 0;
for (i=0; i < n; i++){
if(a[i]%2!=0)
{
b[j]=a[i];j++;
}
}
 
for (i=0; i < j; i++)
cout << b[i] << " ";
getch();
}
это конечно хорошо, а как сделать чтобы выводило массив a[i] без нечётных чисел?
0
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
25.10.2010, 05:49 #6
Еще раз по второй задаче:
заменяем строку
C++
1
cout<<a[j]<<" ";
на:
C++
1
2
3
cout<<endl;
for (i=0; i<n; i++)
   cout<<a[i]<<" ";
Теперь что выводит?
1
Пивасик
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 13
25.10.2010, 15:13  [ТС] #7
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Еще раз по второй задаче:
заменяем строку
C++
1
cout<<a[j]<<" ";
на:
C++
1
2
3
cout<<endl;
for (i=0; i<n; i++)
   cout<<a[i]<<" ";
Теперь что выводит?
теперь всё отлично, спасибо огромное!!
0
Jet-cool
-1 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 19
19.10.2012, 01:09 #8
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
int a[100];
int n; int i;
cout << "\nEnter the size of array: ";
cin >> n;
for (int i=0; i<n; i++)
{
a[i]=rand()%100-50;
cout << a[i] << " ";
}cout<<endl;

int b[100]; int j = 0;
for (i=0; i < n; i++){
if(a[i]%2==0)
{
b[j]=a[i];j++;
}
}

for (i=0; i < j; i++)
cout << b[i] << " ";
getch();
}

Вот полностью выводит как тебе надо, хотя это и не совсем правильно.
0
19.10.2012, 01:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 01:09
Привет! Вот еще темы с ответами:

Отсортировать массив, поставив сначала чётные элементы, а потом нечётные - C++
Люди добрые помогите пожалуйста! мне нужно заполнить двумерный массив А случайными целыми числами от –1000 до +1000 и отсортировать...

Удалить элементы массива, состоящие из одной цифры, и отсортировать его - C++
Здравствуй дорогой друг! Спасибо, что зашёл сюда! Передо мной стоит следующая задача: Дан массив целых чисел из n элементов, заполненный...

Отсортировать по возрастанию и вывести на экран сперва чётные элементы вектора, а затем нечётные - C++
Привет. Вообщем, стоит такая задача: &quot;Вывести на экран сначала отсортированные по возрастанию элементы массива Y(25) стоящие на чётных...

Удалить из массива число, у которого наибольшая сумма цифр и отсортировать оставшиеся элементы - C++
Задан массив целых чисел х. Удалить из него число,у которого наибольшая сумма цифр. Поменять местами 2 наибольших элемента в массиве....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.