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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2011, 23:21   #1
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию продублировать строки матрицы (С++)

доброго времени суток, собственно решаю задачку

Задача. Дана матрица А(M,N) {варианты 1-4, 7-17 }/ А(N,N) {варианты 5,6}, обработать его соответственно варианту (вариант соответствует номеру студента в списке группы):
19. Продублировать строки матрицы, в которых все элементы положительные числа.
дублировать строку нужно сразу после исходной строки

вот что нарешал

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

using namespace std; 
void main()
{
	const int m=5,n=7;
    int s[m][n]={{1,2,3,4,5,2,2},
				 {0,-3,4,5,6,3,1},
				 {1,1,1,1,1,3,4},
				 {0,2,3,7,-2,6,5},
				 {2,3,5,2,0,4,3}};

	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			cout<<s[i][j]<<"  ";
		}
		cout<<"\n";
	}

	bool flag[n];
	int s1[10][10];
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			s1[i][j]=s[i][j];
			if (s[i][j]<0)
				flag[j]=1;
		}
	}
	cout<<"new \n";
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			cout<<s1[i][j]<<"  ";
			if (flag[j])
			{
				for (int j=0; j<n; j++)
				{
					cout<<s1[i][j]<<"  ";
				} 
			}
		}
		cout<<"\n";
	}

    system("pause");  
}
но никак не могу понять, как при выводе матрицы вывести 2жды нужную строку.
не подскажите??
bender_prog вне форума Ответить с цитированием
Старый 01.12.2011, 12:41   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

а вы уверены что вам хватит просто вывести строчку 2 раза на экран?
onewho вне форума Ответить с цитированием
Старый 01.12.2011, 16:00   #3
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
а вы уверены что вам хватит просто вывести строчку 2 раза на экран?
ну я так понял условие:

если дана матрица

1 2 3 4 5 2 2
0 -3 4 5 6 3 1
1 1 1 1 1 3 4
0 2 3 7 -2 6 5
2 3 5 2 0 4 3

то выход должен быть таким:

1 2 3 4 5 2 2
0 -3 4 5 6 3 1
0 -3 4 5 6 3 1
1 1 1 1 1 3 4
0 2 3 7 -2 6 5
0 2 3 7 -2 6 5
2 3 5 2 0 4 3
bender_prog вне форума Ответить с цитированием
Старый 01.12.2011, 16:39   #4
Ezhuk
Форумчанин
 
Регистрация: 09.10.2010
Сообщений: 217
По умолчанию

Код:
#include <iostream>      

using namespace std; 
void main()
{
	const int m=5,n=7;
    int s[m][n]={{1,2,3,4,5,2,2},
				 {0,-3,4,5,6,3,1},
				 {1,1,1,1,1,3,4},
				 {0,2,3,7,-2,6,5},
				 {2,3,5,2,0,4,3}};

	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{
			cout<<s[i][j]<<"  ";
		}
		cout<<"\n";
	}
	cout<<"\n\n\n";
	for (int i=0; i<m; i++){
		bool flag= true; // 
		for (int j=0; j<n; j++){
			cout<<s[i][j]<<"  ";
			if(s[i][j]<0) flag = false;
		}
		
		if(flag) { //true - все положительные; false - Хотя бы один не положителен
			cout<<"\n";
			for (int j=0; j<n; j++)
			cout<<s[i][j]<<"  ";
		}
		cout<<"\n";
	}

}
А так не сойдет? Я просто не понял зачем массив s1.
Ёж птица гордая, пока не пнешь не полетит.
Ezhuk вне форума Ответить с цитированием
Старый 01.12.2011, 16:40   #5
OldMajor
Пользователь
 
Регистрация: 21.05.2011
Сообщений: 32
По умолчанию

Цитата:
Сообщение от bender_prog Посмотреть сообщение
Продублировать строки матрицы, в которых все элементы положительные числа.
Цитата:
1 2 3 4 5 2 2
0 -3 4 5 6 3 1
0 -3 4 5 6 3 1
1 1 1 1 1 3 4
0 2 3 7 -2 6 5
0 2 3 7 -2 6 5
2 3 5 2 0 4 3
в условиях одно. в примере другое. Где истина?
OldMajor вне форума Ответить с цитированием
Старый 04.12.2011, 21:51   #6
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от OldMajor Посмотреть сообщение
в условиях одно. в примере другое. Где истина?
истина в условии, я ошибся

Ezhuk
спасибо! я разобрался)
bender_prog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++.три матрицы, упорядочить строки той матрицы у которой больше нулевых строк Ирина1992 Помощь студентам 12 20.11.2011 13:01
Получить из данной строки новую строку, в которой каждый символ продублировать grev_4 Паскаль, Turbo Pascal, PascalABC.NET 3 27.12.2010 23:42
Продублировать элементы массива QuadroX Помощь студентам 4 30.09.2010 10:47
Матрицы, Строки NoHeart Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 10.06.2009 19:07