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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы в С++ помогите исправить, пожалуйста, определить количество инверсий в массиве 
:(
    Опции темы
Васяz
Дата 15.11.2011, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код
#include <iostream.h>
#include<iomanip.h>
#include<math.h>
#include<conio.h>
int main ()
{
int x[i],x[j],i,n,s;
s=0
cout<<"Vvedite razmer n:";
cin>>n;
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; j++)
if(x[i] > x[j])
inversii++
{
cout<<"Vvedite x["<<i<<"];
cin>>x[i];
}
cout<<"s=<<s<<endl;
return 0;
}


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

Это сообщение отредактировал(а) bsa - 16.11.2011, 00:01
PM MAIL   Вверх
vol4ek
Дата 15.11.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


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

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



со скобками сначала разберись
PM MAIL ICQ   Вверх
vol4ek
Дата 15.11.2011, 21:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


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

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



полная белиберда написана
PM MAIL ICQ   Вверх
borisbn
Дата 15.11.2011, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Васяz, 
1) воспользуйся кнопкой Код справа сверху от вводимого текста.
2) 
Цитата(Васяz @  15.11.2011,  21:23 Найти цитируемый пост)
int x,x[j],i,n,s;

вот ты пишешь x[i], а i ещё не существует и, даже бы если существовала, то не проинициализирована.
3) у тебя вначале какой-то невнятный цикл по массиву x, а затем [I]cout<<"Vvedite x["<<i<<"];
4) 
Цитата(Васяz @  15.11.2011,  21:23 Найти цитируемый пост)
cout<<"s=<<s<<endl;

здесль не хватает кавычки, да и сама s проинициализирована 0-м, и больше не изменяется... это всё равно, что написать
Код

cout<<"s=0"<<endl;

5) сформулируй чётче, что тебе нужно, потому, что "количество инверсий в массиве" можно понимать по-разному: кол-во переходов через 0 (-1, 3, -2, 5: 3 перехода), а можно просто изменение напрвления приращения (0, 1, 5, 3, 6: 2 изменения).


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


Новичок



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

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



Вот само задание: Задан массив из k чисел. Определить количество инверсий в массиве  (т. е. таких пар элементов, в которых большее число находится слева от меньше-го).
PM MAIL   Вверх
borisbn
Дата 15.11.2011, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Код

#include <iostream>
#include <stdlib.h>

const int k = 20;
int a[ k ];

int main()
{
    for ( int i = 0; i < k; i++ )
    {
        a[ i ] = rand() % 20;
        std::cout << a[ i ] << " ";
    }
    std::cout << std::endl;
    int invCount = 0;
    for ( int i = 0; i < k - 1; i++ )
    {
        if ( a[ i ] > a[ i + 1 ] )
        {
             invCount++;
        }
    }
    std::cout << "invCount = " << invCount << std::endl;
}

http://liveworkspace.org/code/83e83ee7f3d0...1f773d6df53dfd5


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


Эксперт
****


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

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



x[] = {5,4,3,2,1};
Васяz, а сколько в таком массиве инверсий?
судя по
Цитата(Васяz @  15.11.2011,  23:40 Найти цитируемый пост)
 (т. е. таких пар элементов, в которых большее число находится слева от меньше-го). 

здесь целых 4 инверсии.

А по мне так нет ни одной.
инверсия - смена направления, имхо конечно..

PM MAIL   Вверх
Васяz
Дата 16.11.2011, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

 a[ i ] = rand() % 20;


 А что обозначает эта строчка и к чему %?...объясните пожалуйста
PM MAIL   Вверх
bsa
Дата 16.11.2011, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Васяz @  16.11.2011,  01:08 Найти цитируемый пост)
А что обозначает эта строчка и к чему %?...объясните пожалуйста

Данный вопрос означает, что кто-то:
1. совершенно не читал учебник и не слушал преподавателя, когда он объяснял про операции в языках С/С++
2. поленился поискать через поисковые машины и/или в учебнике, что эти операции значат

В данной строке происходит присваивание i-тому элемента массива a остатка от деления псевдослучайного числа на 20 (другими словами, присваивание псевдослучайного числа от 0 до 19 включительно).

PM   Вверх
vol4ek
Дата 16.11.2011, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


конь в пальто
**


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

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



Цитата(bsa @  16.11.2011,  00:16 Найти цитируемый пост)
1. совершенно не читал учебник и не слушал преподавателя, когда он объяснял про операции в языках С/С++2. поленился поискать через поисковые машины и/или в учебнике, что эти операции значат


это точно.


PM MAIL ICQ   Вверх
Васяz
Дата 16.11.2011, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо за объяснение!Я много где искал, но всё бесполезно...что-то с 4 лабой серьёзные возникли проблемы, хотя 3 предыдущие сдал без вопросов...

Добавлено через 9 минут и 8 секунд
Может посоветуете какую книгу по С++ почитать?
PM MAIL   Вверх
Фантом
Дата 16.11.2011, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(volatile @  16.11.2011,  01:00 Найти цитируемый пост)
x[] = {5,4,3,2,1};
Васяz, а сколько в таком массиве инверсий?

здесь целых 4 инверсии.

Если исходить из задания, то их тут не 4, а вообще 10 - все возможные парные сочетания элементов.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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