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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массивы с++, массивы 
:(
    Опции темы
Aleksandra24
  Дата 6.3.2013, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте мальчики!Можете мне помочь не могу никак разобраться с моей ошибкой!!Задан  массив мне нужно элементы между максимальным и минимальным переставить в обратном порядке!!
Вот моя программа она работает но не выдает то что нужно можете пожалуйста найти ошибку которую я сделала пожалуйста!

Код
#include <iostream>
#include <conio.h>
 
using namespace std;


struct VALUE
{
    int value;
    int index;
};
 
int main()


int n , i, j; 
     cout<<"\nVedite razmer massiva:";
     cin>>n;
     int array[n];
     for(i=0;i<n;i++)
     {

       cout<<"\nVvedite element massiva:";
       cin>>array[i];
       }

    VALUE max = {array[0],0};   
    VALUE min = {array[0],0};
    for (int i = 1; i < sizeof(array)/sizeof(int); i++)
    {   
       
        if (array[i] < min.value)
        {
            min.value = array[i]; 
            min.index = i;
        }
     
        if (array[i] > max.value)
        {
            max.value = array[i];
            max.index = i;
        }
            
    }
    array[min.index] = max.value; 
    array[max.index] = min.value;
   

cout<<"\nMinimalniy element massiva:\n"<<min.value; //
 

    cout<<"\nMaximalniy element massiva:\n"<<max.value;
    cout<<"\n";

    int b;
 if (min.value <max.value)
 {

  for ( j = min.value; j <= max.value; j++)
  {
  b = array[j];
  array[j] = array[min.value+1-j];
  array[max.value+1-j] = b;
  }
  }
  else {
   
   b = array[min.value];
   array[min.value] = array[max.value];
   array[max.value] = b;
   for ( j = min.value; j <= max.value; j++)
  {
  b=array[j];
  array[j]=array[max.value+1-j];
  array[max.value+1-j] = b;
  }
  }
  for (j=0; j<n; j++)
  {
     
        
        cout<<"Poluchenniy massiv:\n"<<array[j] <<"\n";
    }
    cout<<endl;
    system("pause");
    return 0;        
}
}

Спасибо заранее! 

Модератор: не забываем пользоваться кнопочкой "Код"
PM MAIL   Вверх
bsa
Дата 6.3.2013, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



первую часть программы у кого-то взяла? по заданию тебе необходимо поменять расположение элементов между максимальным и минимальным. А ты зачем-то меняешь только сами эти элементы... Но это еще ладно. Дальше ты перепутала index и value, в итоге, у тебя программа вообще вылетать должна.
PM   Вверх
kosmonaFFFt
Дата 8.3.2013, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Aleksandra24 @  6.3.2013,  19:34 Найти цитируемый пост)
int array[n];


Так делать можно только для известного во время компиляции n, у тебя же оно вводится с клавиатуры...

Код

int n;
...
::std::cin >> n;
int* array = new int[n]; // Создаем динамический массив размера n.
... // Тут работаем с массивом.
delete [] array; // Освобождаем память, занятую массивом.



--------------------
user posted image
PM MAIL ICQ   Вверх
IValdemar
Дата 9.3.2013, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(kosmonaFFFt @ 8.3.2013,  15:24)
Цитата(Aleksandra24 @  6.3.2013,  19:34 Найти цитируемый пост)
int array[n];


Так делать можно только для известного во время компиляции n, у тебя же оно вводится с клавиатуры...


Так можно делать, начиная со стандарта С99. Такой массив называется "массив переменной длины" (variable length array).
PM MAIL Skype   Вверх
kosmonaFFFt
Дата 9.3.2013, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хм, и в C++  тоже выходит можно?


--------------------
user posted image
PM MAIL ICQ   Вверх
Dem_max
Дата 9.3.2013, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



ТС у тебя не массивы С++, а массивы С
для использования массивов С++ воспользуйся std::vector 


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
borisbn
Дата 9.3.2013, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



> Хм, и в C++  тоже выходит можно?
Нет.
2 ТС - Dem_max дал очень ценный совет


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kosmonaFFFt
Дата 9.3.2013, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(borisbn @  9.3.2013,  11:56 Найти цитируемый пост)
> Хм, и в C++  тоже выходит можно?
Нет.


Ну, поскольку у ТС C++, то мое замечание корректно...


--------------------
user posted image
PM MAIL ICQ   Вверх
NoviceF
Дата 9.3.2013, 14:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

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



Цитата(kosmonaFFFt @  9.3.2013,  08:22 Найти цитируемый пост)
Хм, и в C++  тоже выходит можно? 


gcc (4.5.3 во всяком случае) по-умолчанию поддерживает и возможности c99 (вероятно, только их часть), и позволяет объявлять массивы таким образом.

Но, соответственно, это не стандарт.

Это сообщение отредактировал(а) NoviceF - 9.3.2013, 14:28
PM MAIL   Вверх
IValdemar
Дата 9.3.2013, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kosmonaFFFt, получается вы правы. Если писать именно на С++ то замечание корректно. 
PM MAIL Skype   Вверх
Фантом
Дата 9.3.2013, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



Цитата(NoviceF @  9.3.2013,  15:22 Найти цитируемый пост)

Но, соответственно, это не стандарт.


Поскольку в исходном коде есть conio.h, то надо думать, что соблюдение стандартов не является для ТС приоритетом.  smile 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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