Помощь - Поиск - Пользователи - Календарь
Полная версия: Упорядочивание строк матрицы...
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Ирин
написать программу которая упорядочивает строки прямоугольной целочисленной матрицы по возрастанию сумм их элементов
найти номер первого из столбцов не содержащего ни одного отрицательного элеметна

ПОМОГИТЕ ИСПРАВИТЬ ОШИБКИ

#include <stdio.h>
 #include <iostream.h>
 #include <conio.h>
 #include <math.h>
 #include <iomanip.h>
 int main() {;
   int nrow, ncol;
   nrow=3;
   ncol=3;
 

   int i,j;
   int **a= new int *[nrow]; //выделение памяти под массив
   for(i=0; i<nrow; i++) a[i]=new int [ncol];
   cout<<"введите элементы массива : " <<endl;

   for(i=0; i<nrow; i++) //ввод массива
	for(j=0; j<ncol; j++) cin >>a[i][j];
	for (i=0; i<nrow; i++) {

	  int *sum=new int[nrow]; //массив элементов строк
	 for(i=0; i<nrow; i++) {

	 sum[i] =0;
	  for (j=0; j<ncol; j++)
	  sum[i]=sum[i]+a[i][j];
	  }
	  for (i=0; i<nrow; i++) { //контрольный вывод

	  for (j=0; j<<ncol; j++) cout <<setw(4)<<a[i][j]<< " ";
	   cout<< sum[i]<< endl;
	  }
	  cout<<endl;
	  long buf_sum;
	  int nmin,buf_a;
	  for (i=0; i<nrow-1; i++) { //упорядочивание
	   nmin =i;
		for (j=i+1; j<nrow; j++)
		if (sum[j]<sum[nmin]) nmin=j;
	   buf_sum=sum[i]; sum[i]=sum[nmin]; sum[nmin]=buf_sum;
	   for (j=0; j<ncol; j++) {
		buf_a =a[i][j]; a[i][j]= a[nmin][j]; a[nmin][j]=buf_a;
		}
	   }
	  for (i=0; i<nrow; i++) { //вывод упорядоченной матрицы
	   for (j=0; j<ncol; j++) cout <<setw(4)<< a[i][j]<<" ";
	   cout <<endl;
	   }
	   for (i=0; i<nrow; i++) {
	   int nom=1;
	   int fl=1;
		for (j=0; j<ncol; j++)
		  
		   if ( a[i][j]<0 ) { fl=0; break; }
			
			nom=j;
			
			cout<<" номер столбца  ";
		cin >> nom;

		getche();
		
	   return 0;

	   }


 ! 
Ирин, тебе будет очень приятно, если в ТВОЮ тему будут бросать чужие вопросы? Я думаю, что НЕТ. Больше разделять темы не буду. Буду просто удалять твои вопросы, опубликованные в чужих темах. Это понятно?

Использование тегов, кстати, для тебя ПЕРСОНАЛЬНО, никто не отменял, так что будь добра их использовать.

volvo
#include <conio.h>

#include <iostream.h>
#include <iomanip.h>

template <class T>
void swap(T& a, T& b) {
  T temp = a;
  a = b;
  b = temp;
}


int main() {

  const int nrow = 3;
  const int ncol = 3;

  int i,j;

  int **a = new int* [nrow];
  cout << "enter the array: " << endl;

  for(i=0; i<nrow; i++) {
	a[i] = new int [ncol];
	for(j=0; j<ncol; j++) cin >> a[i][j];
  }

  int *sum = new int[nrow];
  for(i = 0; i < nrow; i++) {
	sum[i] = 0;
	for(j = 0; j < ncol; j++) {
	  cout << setw(4) << a[i][j] << " ";
	  sum[i] += a[i][j];
	}
	cout<< sum[i] << endl;
  }

  cout << endl;

  for(i = 0; i < nrow - 1; i++) {
	int nmin = i;
	for(j = i+1; j < nrow; j++)
	  if(sum[j] < sum[nmin]) nmin = j;

	swap(sum[i], sum[nmin]);

	for (j=0; j<ncol; j++)
	  swap(a[i][j], a[nmin][j]);
  }

  for (i=0; i<nrow; i++) {
	for (j=0; j<ncol; j++) cout << setw(4) << a[i][j] << " ";
	cout <<endl;
  }

  int nom = -1;
  for(j = 0; j < ncol; ++j) {

	int count = 0;
	for (i = 0; i < nrow; i++)
	  if(a[i][j] < 0) ++count;

	if(!count)
	  if(nom == -1) nom = j;
  }

  cout << " col number = " << nom << endl;

  // Не забываем удалять матрицу !!!

  getche();
  return 0;
}
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.