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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2016, 21:21   #1
Мой повелитель
Пользователь
 
Аватар для Мой повелитель
 
Регистрация: 04.01.2016
Сообщений: 93
По умолчанию как так сделать?

Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и вывести на экран и вывести максимальное число в каждой строке.
Код:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
	srand(time(NULL));
	int const massize = 5;
	int maxelement[massize];
	int mas[massize][massize];
	int sum = 0;
	for (int i = 0; i < massize; i++)
	{
		for (int b = 0; b < massize; b++)
		{
			mas[i][b] = 10 + rand() % 90;
		}
	}
	for (int i = 0; i < massize; i++)
	{
		for (int b = 0; b < massize; b++)
		{
			cout << mas[i][b] << endl;
		}
	}
	cout << endl;
	for (int i = 0; i < massize; i++)
	{
		for (int b = 0; b < massize; b++)
		{
			if (mas[i][b] > sum)
			{
				sum = mas[i][b];
			}
			if (i++)
			{
				cout << "Самое большое число в " << i << " строке" << endl;
				cout << sum << endl;
				sum = 0;
			}
		}
	}
	system("pause");
	return 0;
}
Проблема заключается в ифе if(i++),который не хочет правильно выводить максимальное число из строки.Так еще начинает со второй счиатать,хотя первый i++ проходит с 2-й строки.Прошу помочь,как отфильтровать максимальное число именно ифом.
Мой повелитель вне форума Ответить с цитированием
Старый 09.01.2016, 21:40   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

А зачем вообще нужен этот if с i++? Просто выводите sum после внутреннего цикла.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 09.01.2016, 21:57   #3
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,529
По умолчанию

Во внутреннем цикле не там поставил закрывающую фигурную скобку. Надо перед if (i++). И вообще этот if (i++) лишний.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 19.03.2016, 18:48   #4
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Цитата:
Сообщение от Мой повелитель Посмотреть сообщение
Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и вывести на экран и вывести максимальное число в каждой строке.
Код:
#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "conio.h"
#include "time.h"

using namespace std;

const int w = 4;
//------------------------------------------------
//Заполнение матрицы случайными значениями
void rand_matr(int **arr, int n)
{
	srand(time(NULL));
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < n; j++)
			*(*(arr + i) + j) = rand() % 99 + 10;
	}
}
//------------------------------------------------
//Печать матрицы
void print(int **arr, int n)
{
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < n; j++)
		{
			cout  << setw(w) << *(*(arr + i) + j) << " ";
		}
		cout << "\n\n";
	}
}
//------------------------------------------------
//Максимальный элемент каждой строки
void max_elem(int **arr, int n)
{
	int max = 0;
	for(int i = 0; i < n; i++)
	{
		max = 0;
		for(int j = 0; j < n; j++)
		{
			if(arr[i][j] > max)
				max = arr[i][j];
		}
		cout << "Максимальный элемент в " << i + 1 << " строке: " << max;
		cout << endl;
	}
}
//------------------------------------------------
//Главная функция
int main()
{
	setlocale(LC_CTYPE,"Rus");
	int n, **arr, x;
	cout << "Введите размер квадратной матрицы: ";
	cin >> n;
	arr = new int*[n];
	for(int i = 0; i < n; i++)
		*(arr + i) = new int[n];
	rand_matr(arr,n);
	cout << "\n\n Матрица имеет вид: \n\n";
	print(arr,n);
	cout << "\n\n";
	max_elem(arr,n);
	for(int i = 0; i < n; i++)
		delete [] arr[i];
	delete []arr;
	getch();
	return 0;
}
помог - жми на весы
Chainik! вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так? tango1988 HTML и CSS 0 28.11.2014 12:08
Как сделать так чтобы ... Ромка-12 Помощь студентам 2 16.09.2010 05:52
Как сделать так чтобы.. Дима я Общие вопросы Delphi 2 05.01.2010 19:03
Как в Битриксе сделать так, чтобы mulatka Помощь студентам 0 09.06.2009 22:36