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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 14:29   #1
LuBuMaster
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 56
Вопрос трудности с двумерным массивом

Вообщем писал программу по заданию

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

но походу неправельно(
непонял правильно ли отсортировал и как потом отсортированный массив вывести на экран? и куда вписать... а вот есть код но не знаю верный ли?

Код:
for(i=1;i<n;i++)            
                {
                        for(j=1;j<m;j++)
                        {
                        printf("%d\t",a[i][j]);
                        }
                printf("\n");
        }


а из второй части задания возник вопрос: как указать номер столбца без отрицательных чисел?


вообщем вот весь код


Код:
#include "stdafx.h"
#include "complex"
#include "conio.h"


int _tmain(int argc, _TCHAR* argv[])
{
    float a[100][100];
    int i,n,j,m,k,x; // i-счётчик столбцов j-счётчик строк
    printf("Enter n, m ");
    scanf("%i %i",&n, &m);
    for (i=1;i<=n;i++)
	{
		for (j=1;j<=m;j++)
		{
			printf("\n a[%i,%i]= ",i,j);
			scanf("%f",&a[i][j]);
		  }
 for (j=1;j<=m;j++)
   {
	   for(j=1;j<=m;j++)
   {
   template<class T>                        // началась сортировка
void bubbleSort(T a[], long size) 
{
  long i, j;
  T x;
 
  for( i=0; i < size; i++) 
  {            
    for( j = size-1; j > i; j-- ) // i - номер прохода
	{     
      if ( a[j-1] > a[j] ) // внутренний цикл прохода
	  {
      x=a[j-1]; a[j-1]=a[j]; a[j]=x;
	  }
	}
  }
}
if (a[i]>0) printf("Pervii stolbec bez otricatelnogo elemtnta: %i\n",k);  //2 часть задания

   
	   }

   }
return 0;

}


поомгите кто чем может плз!!

Последний раз редактировалось Stilet; 03.12.2009 в 14:46.
LuBuMaster вне форума Ответить с цитированием
Старый 03.12.2009, 14:53   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Найти номер первого из столбцов , не содержащих ни одного отрицательного элемента
Код:
for(int j=1;j<=m;j++)
{
bool ext=true;
for(int i=1;i<=n;i++)
if(ms[i][j]<0)
{
ext=false;
break;
}
if(ext)cout<<"First column where all element >0 is "<<j+1;
}
Вывод массива
Код:

for(i=1;i<=n;i++)            
{
for(j=1;j<=m;j++)printf("%d ",a[i][j]);
printf("\n");
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer

Последний раз редактировалось Ozerich; 03.12.2009 в 14:56.
Ozerich вне форума Ответить с цитированием
Старый 03.12.2009, 15:52   #3
LuBuMaster
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 56
По умолчанию

спасибО! а сортировку я с этого сайта в какой - то темке нашёл но не знаю правельно ли?
LuBuMaster вне форума Ответить с цитированием
Старый 03.12.2009, 15:59   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Упорядочить строки целочисленной прямоугольной матрицы по возрастанию количества одинаковых элементов в каждой строке.
Не совсем понял по какому параметру сортировать...
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 03.12.2009, 16:03   #5
LuBuMaster
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 56
По умолчанию

есть допустим строка массива {2,4,7,4,6,9,7,7,9,9,9,6,6,6} после сортировки он должен выглядеть так {2,4,4,7,7,7,9,9,9,9,6,6,6,6}
вот так вот должно быть, но вот как это записать...

а вот ещё 1 вопрос вы когда мне скинули предыдущее задание код, там
i-это номер строк, а j-столбцов? или наоборот?
LuBuMaster вне форума Ответить с цитированием
Старый 03.12.2009, 16:17   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну так тее обыная сортировка пузырьком:
Код:
 for( i=0; i < size; i++) 
  {            
    for( j=0; j > size-1; j++ ) // i - номер прохода
	{     
      if ( a[j] > a[j+1] ) // внутренний цикл прохода
	  {
      x=a[j+1]; a[j+1]=a[j]; a[j]=x;
	  }
	}
  }
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2009, 16:43   #7
LuBuMaster
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 56
По умолчанию

Код:
#include "stdafx.h"
#include "complex"
#include "conio.h"
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{
    float a[100][100];
    int i,n,j,m,k,x; // i-счётчик cтрок j-счётчик столбцов
    printf("Enter n, m ");
    scanf("%i %i",&n, &m);
    for (i=1;i<=n;i++)
	{
		for (j=1;j<=m;j++)
		{
			printf("\n a[%i,%i]= ",i,j);
			scanf("%f",&a[i][j]);
		  }
	}
  for( i=1; i <=n; i++); 
  {            
    for( j=1; j => m-1; j++ ) ;
	{     
      if ( a[j] > a[j+1] ); // внутренний цикл прохода
	  {
      x=a[j+1];
	  a[j+1]=a[j]; 
	  a[j]=x;
	  }
	}
  }
	   

for(int j=1;j<=m;j++)
{
bool ext=true;
for(int i=1;i<=n;i++)
if(a[i][j]<0)
{
ext=false;
break;
}
if(ext)cout<<"First column where all element >0 is "<<j+1;
}
   
	   

 
return 0;

}




вот так вот?



а вот ещё вопрос если этот код
Код:
for(int j=1;j<=m;j++)
{
bool ext=true;
for(int i=1;i<=n;i++)
if(ms[i][j]<0)
{
ext=false;
break;
}
if(ext)cout<<"First column where all element >0 is "<<j+1;
}

писать через printf то получится
Код:
} 
if(ext)  printf("First column where all element >0 is  %i",k);  // если  k
 ввести в шапке программы как j+1 
}

Последний раз редактировалось Stilet; 03.12.2009 в 17:01.
LuBuMaster вне форума Ответить с цитированием
Старый 03.12.2009, 17:00   #8
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от LuBuMaster Посмотреть сообщение
а вот ещё 1 вопрос вы когда мне скинули предыдущее задание код, там
i-это номер строк, а j-столбцов? или наоборот?
i это счетчик цикла который идет по строкам j-по столбцам

Цитата:
Сообщение от LuBuMaster Посмотреть сообщение
есть допустим строка массива {2,4,7,4,6,9,7,7,9,9,9,6,6,6} после сортировки он должен выглядеть так {2,4,4,7,7,7,9,9,9,9,6,6,6,6}
вот так вот должно быть, но вот как это записать...
Stilet наверное не понял суть "сортировки".
1.Создаешь массив из структур
Код:
struct item
{
int ch;
int kol;
item(){}
item(int c,int k)
{
ch=c;
kol=k;
}
bool operator < (const item &b)
{
if(b.kol==0)return false;
if(kol<b.kol)return true;
else return false;
}
2.создаешь массив
item data[MAXM],где MAXM максимальное число в массиве
3.Циклом пробегаешь по массиву
Код:
for(int i=0;i<n;i++)
data[ms[i]].kol++;//ms это твой массив
4.Сортишь этот массив методом sort из <algorithm>
Код:
sort(ms,ms+MAXN)
5.Выводишь массив
Код:
int i=0;
while(data[i].kol!=0)
{
  for(int j=0;j<data[i].kol;j++)
     cout<<data[i].ch<<" ";
  i++;
}
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 03.12.2009, 17:19   #9
LuBuMaster
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 56
По умолчанию

ээээ.... а если не сложно можете это в мой код вбить что бы я понял куда это запихать))) а то я запутался)
LuBuMaster вне форума Ответить с цитированием
Старый 03.12.2009, 17:21   #10
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Сообщение от LuBuMaster Посмотреть сообщение
ээээ.... а если не сложно можете это в мой код вбить что бы я понял куда это запихать))) а то я запутался)
За WMZ всё можно
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с двумерным массивом nikita33321 Помощь студентам 0 30.09.2009 22:45
проблемы с двумерным массивом pancho Общие вопросы Delphi 10 29.01.2009 21:24
Задача с двумерным массивом. svobodys Паскаль, Turbo Pascal, PascalABC.NET 0 14.12.2008 18:09
Задача с двумерным массивом. svobodys Помощь студентам 3 13.12.2008 15:44
задача с двумерным массивом Ras Помощь студентам 1 22.12.2007 19:58