Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка Массива (С++) нужна помощь и Совет! 
:(
    Опции темы
ChiliVilly
Дата 5.12.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.12.2010

Репутация: нет
Всего: нет



Написал программу, но она не сортирует массив по возрастанию! не могу понять почему?!?!
сама программа вычисляет количество элементов больших С, и произведение элементов массива расположенных после максимального по модулю элемента.

Подскажите в чем ошибка?

Код

#include <iostream.h>;
#include <conio.h>;
#include <math.h>;
#include <stdlib.h>
#include <time.h>
int main()
{
const int n = 10;
int a[n],k,imax,max,c,q,j;
signed long int p=1;
for (int i=0; i<n; i++)
{ a[i]=rand()%40-20;
cout<<"\n \n"<<a[i];}
for (q=0; q<n-1; q++)
{j=0;
for (i=q+1; i<n; i++)
if (a[k]>a[i])
{j=a[q];
a[q]=a[i];
a[i]=j;}}
 
cout<<"\n vvedite c= ";
cin>>c;
k=0;
for(i=0;i<n;i++)
if(a[i]>c) k=k+1;
cout<<"\n k="<<k;
max=abs(a[0]);
imax=1;max=1;
for (i=1; i<n; i++)
if (abs(a[i])>max)
{max=abs(a[i]); imax=i;}
for (i=1;i<n; i++)
if (i>imax) p=p*a[i];
cout<<"\n p="<<p;
 
getch();
return 0;
}



Модератор: не забываем пользоваться кнопочкой "Код"

Это сообщение отредактировал(а) bsa - 6.12.2010, 16:24
PM MAIL   Вверх
sQu1rr
Дата 5.12.2010, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Пользуйся тегом "код"...
И пиши на С++ а не на С smile Если код С++ ( не посмотрел - компилятор старый )

Добавлено @ 17:52
А что должна выполнять программа?
Цитата(ChiliVilly @  5.12.2010,  17:33 Найти цитируемый пост)
сама программа вычисляет количество элементов больших С, и произведение элементов массива расположенных после максимального по модулю элемента.

Причем тут всмысле сортировка?
И вообще программа написана очень... хм...
после #include <...> не ставиться ";"
И если переменная не определена раньше, ее стоит определить. И вообще советуется использовать более новый компилятор

Что должна выполнять программа?

Это сообщение отредактировал(а) sQu1rr - 5.12.2010, 17:55
PM MAIL Skype GTalk   Вверх
ChiliVilly
Дата 5.12.2010, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.12.2010

Репутация: нет
Всего: нет



Ну ее еще нужно отсортировать по возрастанию!
PM MAIL   Вверх
sQu1rr
Дата 5.12.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(ChiliVilly @  5.12.2010,  17:55 Найти цитируемый пост)
Ну ее еще нужно отсортировать по возрастанию! 

Тоесть программа должна:
1. Создать массив из n значений
2. Рандомна их инициализировать
3. Отсортировать
4. Запросить C
5. Вывести кол-во элементов больших C
6. Вывести произведение элементов... блаблабла - но как ЭТО сделать, если массив отсортирован?

Добавлено через 1 минуту и 56 секунд
И да.. если C++, то используй std::sort()
PM MAIL Skype GTalk   Вверх
ChiliVilly
Дата 5.12.2010, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 5.12.2010

Репутация: нет
Всего: нет



Вообще программа Все считает и выполняет, только сортировки массива не происходит! В этом Беда!
Вот как звучит задача в оригинале!

В одномерном массиве состоящем из n вещественных элементов вычислить:
1) количесто элементов массива больших С;
2) произведение элементов массива, расположенных после максимального по модулю элемента.

Преобразовать массив таким образом, что бы сначала располагались все отрицательные элементы, а потом все положительные. (элементы равные 0 считать положительными).


у меня числа не вещественные, я знаю. И сортировка по возрастанию как раз подходит для сортировки массива как по заданию!
PM MAIL   Вверх
sQu1rr
Дата 5.12.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(ChiliVilly @  5.12.2010,  18:13 Найти цитируемый пост)
у меня числа не вещественные, я знаю. И сортировка по возрастанию как раз подходит для сортировки массива как по заданию! 

Не думаю. Помоему просто нужно выстроить сначало отрицательные потом положительные значения... Сортировка, правда упростит 2е задание smile Тогда либо весь массив, либо ничего XD
Сортировать можно std::sort как я уже сказал smile
PM MAIL Skype GTalk   Вверх
sQu1rr
Дата 5.12.2010, 21:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Это ваша сортировка?
Код

for (q=0; q<n-1; q++)
{j=0; // зачем интересно?
for (i=q+1; i<n; i++)
if (a[k]>a[i]) // тут наверное a[q] ?
{j=a[q];
a[q]=a[i];
a[i]=j;}}


Да и пишите понятнее.. Хотя ваше дело конечно, но так, согласитесь, понятнее:
Код

for( q = 0; q < n-1; q++ )
{
    for( i = q + 1; i < n; i++ )
        if( a[q] > a[i] )
        {
            j = a[q];
            a[q] = a[i];
            a[i] = j;
            // Вообще есть std::swap( a[q], a[i] ); Но кажется у вас старый компилятор либо учебник/препод
        }
}


Это сообщение отредактировал(а) sQu1rr - 5.12.2010, 21:30
PM MAIL Skype GTalk   Вверх
bsa
Дата 6.12.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.