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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2012, 22:28   #1
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
Восклицание Определить в двумерном массиве числа, равные наименьшим значениям элементов строк

Текст задачи:
Дана действительная матрица размера m×n. Определить числа b_1, …, b_m, равные соответственно наименьшим значениям элементов строк.
Смог сделать лишь начало:
Код:
// lab_4a.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#define MAX_SIZE 100
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
unsigned int m=0, n=0;
int matrix[MAX_SIZE][MAX_SIZE];
//диалог и ввод данных
cout<<"Введите количество элементов в строках: ";
cin>>m;
cout<<"Введите количество элементов в столбцах: ";
cin>>n;
//инициализация массива псевдослучайными числами
for (unsigned int i=0;i<m;i++)
for(unsigned int j=0;j<n;j++)
{
	matrix[i][j]=((int)rand()/RAND_MAX+rand()%100-rand()%50);
}
//вывод матрицы на экран
printf("/n/n");
for(unsigned int i=0;i<n;i++)
for(unsigned int j=0;j<m;j++)
	printf("[%i][%i] элемент матрицы = %3.2f\n",i,j,matrix[i][j]);
printf("/n/n");
system("pause");}
//решение задачи
Кто-нибудь может помочь с самим решением (т.е. найти наименьшие значения элементов строк) и указать на ошибки, пожалуйста?
Chopper вне форума Ответить с цитированием
Старый 26.12.2012, 22:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
for(unsigned int j=0;j<n;j++)
{
	matrix[i][j]=((int)rand()/RAND_MAX+rand()%100-rand()%50);
  if(matrix[i][j]<b[j]) b[j]=matrix[i][j];
}
Если ты действительно сам делал то этот пост поймешь сразу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2012, 23:12   #3
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
По умолчанию

честно не очень понял, можно поподробнее?
Chopper вне форума Ответить с цитированием
Старый 27.12.2012, 23:12   #4
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
По умолчанию

ну кто-нибудь может помочь, пожалуйста?
Chopper вне форума Ответить с цитированием
Старый 27.12.2012, 23:15   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Описываешь массив: int b[MAX_SIZE]
Далее правишь код как я показал.
После чего перед концом программы в цикле таком же как и
for(unsigned int j=0;j<n;j++)
с помошью printf("%d\t",b[i]); выводишь информацию о минимумах.

Достаточно подробно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2012, 23:54   #6
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
Восклицание

Цитата:
Сообщение от Stilet Посмотреть сообщение
Описываешь массив: int b[MAX_SIZE]
Далее правишь код как я показал.
После чего перед концом программы в цикле таком же как и
for(unsigned int j=0;j<n;j++)
с помошью printf("%d\t",b[i]); выводишь информацию о минимумах.

Достаточно подробно?
Исправил как вы подсказали(надеюсь так):
Код:
// lab_4a.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
#define MAX_SIZE 100
using namespace std;
int main() {
setlocale(LC_ALL, "RUS");
unsigned int m=0, n=0;
float matrix[MAX_SIZE][MAX_SIZE];
int b[MAX_SIZE];
//диалог и ввод данных
cout<<"Введите количество элементов в строках: ";
cin>>m;
cout<<"Введите количество элементов в столбцах: ";
cin>>n;
//инициализация массива псевдослучайными числами
for (unsigned int i=0;i<m;i++){
for(unsigned int j=0;j<n;j++)
{
	matrix[i][j]=((int)rand()/RAND_MAX+rand()%100-rand()%50);
	if(matrix[i][j]<b[j])
		b[j]=matrix[i][j];
}}
//вывод матрицы на экран
unsigned int i, j;
printf("\n\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
	printf("[%i][%i] элемент матрицы = %3.2f\n",i,j,matrix[i][j]);
	printf("\n\n");}}
//решение задачи и вывод результатов	
for(j=0;j<n;j++){
	printf("%i\t",b[i]);}

system("pause");
return 0;
}
Однако результатом программа всегда выводит одно и то же число -858993460. Что же не так?
Chopper вне форума Ответить с цитированием
Старый 28.12.2012, 00:00   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
for(j=0;j<n;j++){
	printf("%i\t",b[i]);}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.12.2012, 00:09   #8
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
for(j=0;j<n;j++){
	printf("%i\t",b[i]);}
А в чем разница? То же самое ведь.
Chopper вне форума Ответить с цитированием
Старый 28.12.2012, 00:29   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цикл по одной переменной, а вывод - по другой.
Также определитесь, по какой стороне матрицы какой размер, а то в одном цикле матрица n*m, а в другом - m*n.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.12.2012, 00:46   #10
Chopper
Пользователь
 
Регистрация: 29.11.2012
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Цикл по одной переменной, а вывод - по другой.
Также определитесь, по какой стороне матрицы какой размер, а то в одном цикле матрица n*m, а в другом - m*n.
Пожалуйста, можете показать как должно быть правильно?
А то я не совсем понимаю, а сдать надо уже завтра.
Chopper вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
. Даны натуральные M, N и матрица действительных чисел размером MxN. Определить числа B1,B2,...,BM, равные разностям наи Proskurina Паскаль, Turbo Pascal, PascalABC.NET 3 29.05.2012 23:59
В двумерном вещественном массиве 4x4 переставить строки в порядке возрастания максимальных элементов строк (Паскаль) 77SEMI77 Помощь студентам 0 20.01.2012 00:42
Сортировка отр. элементов в двумерном массиве SWAT Паскаль, Turbo Pascal, PascalABC.NET 3 02.04.2009 21:43
В массиве G(6;8) определить номер столбца с наименьшим количеством нулей. Катюня Помощь студентам 2 21.01.2009 06:26