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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 23:27   #1
DeusGPZ
 
Регистрация: 13.10.2011
Сообщений: 3
По умолчанию

Здравствуйте, я студент программист 1-го курса университета.
Короче говоря учебная программа которую склали нам сотворила проблему, один из предметов идёт быстрее программирования,(структуры данных), и поэтому у меня возникла проблемка...

Мне нужно было зделать двумерный масив размеры которого я сам задаю, потом нужно было посортировать числа масива как было изображено в графе, и в конце концов получить одномерный масив и упорядчить его по зростанию или спаданию чисел способом минимальных элементов.

Я зделал всё кроме сортировки по минимальных элементах, помогите плз, не могу найти толковое обьяснение как это зделать.
Код:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
main() {
  clrscr();
  randomize();
  int a[10][10],b[100],min,max,n;
  cout<<"введите размерность матрици:\nn=";
  cin>>n;
  cout<<"введите максимальное значение числа« :\nmax=";
  cin>>max;
  cout<<"введите минимальное значение числа« :\nmin=";
  cin>>min;
  cout<<"-=-=-=-=-=-=-=масив-=-=-=-=-=-=-=-\n";
  for (int i=0;i<n;i++) {
    for(int j=0;j<n;j++) {
      a[i][j]=random(max-min)+min;
      cout<<a[i][j]<<"\t";}
    cout<<endl;}
  cout<<"-=-Одномерный масив-=-\n";
  for (i=0;i<n;i++)
    for (int j=0;j<n;j++) {
     // b[j+i*n]=((n-1)%2==i%2)?(a[i][j]):(a[i][n-1-j]);
      if ((n-1)%2==i%2) b[j+i*n]=a[i][j];
      else b[j+i*n]=a[i][n-1-j]; }
  for(i=0;i<n*n;i++) cout<<"b["<<i<<"]= "<<b[i]<<"\n";
  getch();
return 0;
}
P.S. Буду оч благодарен за помощь, и если ктото может скиньте норм компилятор С++)
Заранее спасибо!!

Если по программе несможет никто помочь, то хоть помогите с способом минималных элементов, обьяснить ктонить сможет?

Последний раз редактировалось DeusGPZ; 14.10.2011 в 14:22.
DeusGPZ вне форума Ответить с цитированием
Старый 14.10.2011, 16:33   #2
DeusGPZ
 
Регистрация: 13.10.2011
Сообщений: 3
По умолчанию

Помогите ктото плз, я пробую написати чтото вроде

Код:
for (b[i]=0;i<n;b[i]++)
if (b[n]<b[0])
а дальше как дописать хз, и то незнаю правильно ли то что я написал..
Помогите плз!))
DeusGPZ вне форума Ответить с цитированием
Старый 16.10.2011, 23:45   #3
DeusGPZ
 
Регистрация: 13.10.2011
Сообщений: 3
По умолчанию

Помогите, подскажите плз, дайте линк на инфу о высше указаной теме, оч прошу!
DeusGPZ вне форума Ответить с цитированием
Старый 17.10.2011, 01:34   #4
nordos
 
Регистрация: 17.10.2011
Сообщений: 7
По умолчанию

По возростанию:

Код:
for(i=0; i<n; i++){
    max = ar[i];
    num = i;
    for(j=i; j<n; j++){       //Проходим весь масив и ищем минимальный елемент
        if(min>=ar[j]){       
            min = ar[j];
            num = j;
        }
     }
     temp = ar[i];
     ar[i] = ar[num];
     ar[num] = temp;
}
nordos вне форума Ответить с цитированием
Старый 17.10.2011, 13:01   #5
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от DeusGPZ Посмотреть сообщение
P.S. Буду оч благодарен за помощь, и если ктото может скиньте норм компилятор С++)
Тут есть бесплатный :
http://www.microsoft.com/visualstudi...al-cpp-express
Цитата:
Сообщение от DeusGPZ Посмотреть сообщение
Если по программе несможет никто помочь, то хоть помогите с способом минималных элементов, обьяснить ктонить сможет?
Вот сортировка пузырьковым методом:
Код:
 #include <iostream>
 #include <iterator>

template< class type>
 inline type* min ( type *begin, type *end)
{
	 type *min_el = begin;
	 while ( ++begin != end)
		 if ( *begin < *min_el) min_el = begin;
	return min_el;
}

template< class type>
 inline void exchange ( type *el1, type *el2)
{
	type tmp = *el1;
	*el1 = *el2;
	*el2 = tmp;
}

template< class type>
 inline void sort ( type *mas, size_t num)
{
	for ( size_t i =0; i < num; ++i)
		exchange( min( mas + i, mas + num), mas + i);
}

int main() {
	const size_t N = 10;
	setlocale( LC_ALL, "Rus");
	float mass[ N] = { 23.43f, 234.43f, 34.0f, 0.0f, -23.0f, 2.3f, -10034.34f, 7888.0f, 0.00023f, 100.0f};
	std::cout << "Массив до сортировки :" << std::endl;
	std::copy( mass, mass + N, std::ostream_iterator< float> ( std::cout, " "));
	std::cout << std::endl;
	sort< float>( mass, N);
	std::cout << "Массив после сортировки :" << std::endl;
	std::copy( mass, mass + N, std::ostream_iterator< float> ( std::cout, " "));
	std::cout << std::endl;
	return 0;
}
Проверка работы программы: http://codepad.org/1omqEH8x
An1ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помочь с заданием =(( Lexxich Помощь студентам 1 14.06.2008 12:34
Прошу помочь с запросом MASTERKEY БД в Delphi 0 18.05.2007 15:15
Прошу по помочь с TMonthCalendar, Azamat_k Компоненты Delphi 12 04.04.2007 13:36