Ув. знатоки

Ответить
GoogTimes
Сообщения: 6
Зарегистрирован: 09 янв 2010, 15:44

Ув. знатоки, к вам огромная просьба: оказалось, что на понедельник преподаватель задал РГР, сейчас неделя сессий, на поиск просто нет времени.
С++, задача такова: Для каждого столбца матрицы J размера MxN найти номера строк, содержащих отрицательные элементы.
Огромная просьба уделить этой проблеме несколько минут своего драгоценного времени. (Если кто-то возьмется за это, то есть 1 критерий-как можно более простые операторы и ф-ции), заранее благодарен.
THuND3Rb0LT
Сообщения: 22
Зарегистрирован: 16 авг 2009, 13:02
Откуда: Dnepropetrovsk
Контактная информация:

Код: Выделить всё

#include<iostream>
using namespace std;
const int M=3,N=3;
void main()
{
	int J[M][N]={{1,2,3},{2,3,-5},{5,7,-8}};
	int i=0;
	int c=0; 
	cout<<"Stroki soderjawie otrciatelnie elementi:"<<endl;
	for(i;i<M;i++)
		for(c=0;c<N;c++)
			if(J[i][c]<0)  
				cout<<i+1<<endl;
}
Как-то так...
GoogTimes
Сообщения: 6
Зарегистрирован: 09 янв 2010, 15:44

THuND3Rb0LT писал(а):

Код: Выделить всё

#include<iostream>
using namespace std;
const int M=3,N=3;
void main()
{
	int J[M][N]={{1,2,3},{2,3,-5},{5,7,-8}};
	int i=0;
	int c=0; 
	cout<<"Stroki soderjawie otrciatelnie elementi:"<<endl;
	for(i;i<M;i++)
		for(c=0;c<N;c++)
			if(J[i][c]<0)  
				cout<<i+1<<endl;
}
Как-то так...

огромнейшее спасибо! Oднако, есть еще 1 вопрос: как заполнить всю матрицу случайными значениями?
(и последнее: у нас вуз на опр время закрывали, так что огромнейшая часть программы улетела в трубу, не могли бы вы дать полный текст программы, если вас конечно же не затруднит, не сочтите за наглость)
THuND3Rb0LT
Сообщения: 22
Зарегистрирован: 16 авг 2009, 13:02
Откуда: Dnepropetrovsk
Контактная информация:

Вот полностью рабочий код:

Код: Выделить всё

#include<iostream>
#include<time.h>
using namespace std;
const int M=4,N=3;
void main()
{
	srand(time(0));
	int i=0;
	int c=0;
	int J[M][N];
	for(i=0;i<M;i++)  //zapolniaem massiv
		for(c=0;c<N;c++) //sly4ainimi
			J[i][c]=((rand()%1000)-500);//4islami
	for(i=0;i<M;i++)//vivodim massiv
	{
		for(c=0;c<N;c++)
			cout<<J[i][c]<<"\t";
		cout<<endl;
	} //viveli
	cout<<"Stroki soderjawie otrciatelnie elementi:"<<endl;
	i=0;
loop:	for(i;i<M;i++)
		for(c=0;c<N;c++)
			if(J[i][c]<0)
			{
				cout<<i+1<<endl;
				i+=1;
				goto loop;
			}
}
Тестировал несколько десятков раз, ошибок в выполнении не наблюдал. При изменении M и N ... М - кол-во строк, N- столбцов. Вообщем результат увидите. Рад помочь ))
Newbie
Сообщения: 148
Зарегистрирован: 06 сен 2009, 19:45

THuND3Rb0LT писал(а):Вот полностью рабочий код:

Код: Выделить всё

loop:	for(i;i<M;i++)
		for(c=0;c<N;c++)
			if(J[i][c]<0)
			{
				cout<<i+1<<endl;
				i+=1;
				goto loop;
			}
}

Ради интереса. Зачем тут юзать переход?
GoogTimes
Сообщения: 6
Зарегистрирован: 09 янв 2010, 15:44

Уважаемый, вы мой спаситель, благодарю!
THuND3Rb0LT
Сообщения: 22
Зарегистрирован: 16 авг 2009, 13:02
Откуда: Dnepropetrovsk
Контактная информация:

Newbie писал(а):Ради интереса. Зачем тут юзать переход?

Да привык так, вот и юзаю. Для наглядности.)
Danike
Сообщения: 14
Зарегистрирован: 18 фев 2010, 21:13

Даны действительные числа c1,...,cn, d1,...,dk (c1<=c2<=...<=cn, d1<=d2<=...<=dk). Внести единую упорядоченность в c1,...,cn, d1,...dn, получив f1,f2,...,f(n+k) такие, что f1<=f2<=...<=f(n+k). Число сравнений не должно превосходить n+k.

P.S. "n" и "k" - это нижние индексы!!!

Заранее благодарю!!!
Ответить