Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2008, 16:57   #1
Chudic
 
Регистрация: 05.11.2008
Сообщений: 3
По умолчанию Вопрос по парным массивам в С++

Помогите, пожалуйста с задачкой!! Я немножко туплю...Я честно искала похожую тему, но не нашла . Задачка: Даны значения прироста валового продукта по областям РБ, где области помечены порядковыми
номерами по алфавиту. Определить область с наибольшим приростом, применив сортировку методом вставки.
В общем, я отсортировала значения прироста, но вот проблема: как сделать, чтобы номера областей после сортировки соответствовали значениям прироста (т.е. если под номером 3 перед сортировкой была область с максимальным приростом на позиции a[2], то как сделать, чтобы номер 3 остался с этой же областью, но уже на позиции a[5])??

Вот, что я навояла:
#include <iostream.h>
#include <conio.h>
int main(){
const n=6;
int i,j,x;
int a[n];
float b[n];
cout<<"vvedite massiv s nomerami oblastei"<<endl;
for(i=0; i<n; i++) cin>>a[i];
cout<<"vvedite massiv so znacheniyami prirosta"<<endl;
for(i=0; i<n; i++) cin>>b[i];
cout<<"oblast"<<" "<<"prirost valovogo producta"<<endl;
for(i=0; i<n; i++) cout<<a[i]<<" "<<b[i]<<endl;

for(i=1;i<n;i++) {x=b[i]; //сортирует значения прироста
for(j=i-1;j>=0&&b[j]>x;j--)
{b[j+1]=b[j];
b[j]=x;}
}

cout<<"oblast"<<" "<<"prirost valovogo producta"<<endl;
for(i=0; i<n; i++) {cout<<a[i]<<" ";
cout<<b[i]<<endl;}
cout<<"oblast s naibolshim prirostom:"<<a[n-1];
getch();
return 0;}

Всем откликнувшимся заранее безумно благодарна!!!
Chudic вне форума Ответить с цитированием
Старый 06.11.2008, 22:43   #2
spark-roman
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 20
По умолчанию

Если я правильно понял вас, то нужно сделать так:
Цитата:
Сообщение от Chudic Посмотреть сообщение
for(i=1;i<n;i++) {x=b[i]; //сортирует значения прироста
for(j=i-1;j>=0&&b[j]>x;j--)
{
int temp;
b[j+1]=b[j];
b[j]=x;
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}

Последний раз редактировалось spark-roman; 07.11.2008 в 01:34.
spark-roman вне форума Ответить с цитированием
Старый 07.11.2008, 00:38   #3
Chudic
 
Регистрация: 05.11.2008
Сообщений: 3
По умолчанию

spark-roman, спасибо за ответ!
хм...
х-это временная переменная, чтобы отсортировать значения прироста. Почему Вы присвоили номеру области значение b[i] (x=b[i]; a[j]=x)??

Возможно, я неправильно выразилась. Вот что мне нужно.
Вводные данные (числа-пальцем в небо)
Номер области Прирост ВП
1 (брестская) 15
2 (витебская) 1
3 (гомельская) 8
4 (гродненская) 45
5 (минская) 30
6 (могилевская) 10

Получается после сортировки
Номер области Прирост ВП
2 1
3 8
6 10
1 15
5 30
4 45

Вот как-то... ПОмогите!!!!!!!!!!!!!!!!
Chudic вне форума Ответить с цитированием
Старый 07.11.2008, 01:37   #4
spark-roman
Пользователь
 
Регистрация: 25.10.2008
Сообщений: 20
По умолчанию

извиняюсь, переделайте как в цитате, теперь должно зароботать
spark-roman вне форума Ответить с цитированием
Старый 07.11.2008, 10:33   #5
Chudic
 
Регистрация: 05.11.2008
Сообщений: 3
По умолчанию

spark-roman, спасибо Вам огромное, все работает. Вы мне очень помогли!!!
Chudic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
# Delphi - Задача по массивам. forumu Помощь студентам 5 02.04.2010 20:37
Вопрос по массивам Azzy Общие вопросы .NET 4 23.12.2007 23:43
Лаба по массивам DimaG Помощь студентам 19 30.10.2007 08:56
Задача по массивам grerg Помощь студентам 1 30.10.2007 08:25
Программа по двумерным массивам! Elmander Помощь студентам 9 22.06.2007 14:32