Другие языки программирования и технологии
Дана матрица размером n x m. Найти наибольший положительный и наименьший отрицательный элементы матрицы.
Помогите написать прогу на языке С... сессия горит ((((
/*/////////////////////////
Project name: Matrix///
*//////////////////////////
/*
Сам учусь только. Поэтому возможны и ошибки.
В проекте создадим матрицу (двухмерный массив) .
Заполним её случайными числами от -20 до 30.
Найдём минимум и максимум.
*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(static_cast<unsigned>(time(NULL))); //Функция нужна для того, что бы рэндомные значения не повторялись каждый раз, когда запускаем программу снова.
int a=-20,b=30; //Переменные, для указания диапазона рандомных чисел для матрицы.
int max = 0, min = 0;//Обнуляем переменные для мин и макс.
const int n=2,m=3;//Переменные для задания размера массива.
int Matr[n][m];//Описываем матрицу. Объявляем и определяем.
/*
В этом цикле пройдёмся по всем ячейкам памяти и положим в них рэндомные значения.
А так же, сразу найдём мин и макс в матрице.
*/
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
Matr[i][j] = rand() % (b - a) + a;
printf("%d ", Matr[i][j]);
if((Matr[i][j] > max) && (Matr[i][j] > 0)) max = Matr[i][j];//Находим наибольший положительный элемент матрицы.
if((Matr[i][j] < min) && (Matr[i][j] < 0)) min = Matr[i][j];//Находим наименьший отрицательный элемент матрицы.
}
printf("\n");
}
/*
По условию, мак должно быть положительным.
А минимальное значение должно быть отрицательными.
*/
if(max == 0) printf("There is no positiv max element in Matrix.\n");
else printf("max = %d\n", max);
if(min == 0) printf("There is no negative min element in Matrix.\n");
else printf("min = %d\n", min);
getch();
return 0;}
Project name: Matrix///
*//////////////////////////
/*
Сам учусь только. Поэтому возможны и ошибки.
В проекте создадим матрицу (двухмерный массив) .
Заполним её случайными числами от -20 до 30.
Найдём минимум и максимум.
*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(static_cast<unsigned>(time(NULL))); //Функция нужна для того, что бы рэндомные значения не повторялись каждый раз, когда запускаем программу снова.
int a=-20,b=30; //Переменные, для указания диапазона рандомных чисел для матрицы.
int max = 0, min = 0;//Обнуляем переменные для мин и макс.
const int n=2,m=3;//Переменные для задания размера массива.
int Matr[n][m];//Описываем матрицу. Объявляем и определяем.
/*
В этом цикле пройдёмся по всем ячейкам памяти и положим в них рэндомные значения.
А так же, сразу найдём мин и макс в матрице.
*/
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
Matr[i][j] = rand() % (b - a) + a;
printf("%d ", Matr[i][j]);
if((Matr[i][j] > max) && (Matr[i][j] > 0)) max = Matr[i][j];//Находим наибольший положительный элемент матрицы.
if((Matr[i][j] < min) && (Matr[i][j] < 0)) min = Matr[i][j];//Находим наименьший отрицательный элемент матрицы.
}
printf("\n");
}
/*
По условию, мак должно быть положительным.
А минимальное значение должно быть отрицательными.
*/
if(max == 0) printf("There is no positiv max element in Matrix.\n");
else printf("max = %d\n", max);
if(min == 0) printf("There is no negative min element in Matrix.\n");
else printf("min = %d\n", min);
getch();
return 0;}
Давай помогу. Что именно непонятно? Что не получается? Что уже готово?
Читай про циклы. В данном случае двойной цикл, чтоб пройти по всем элементам массива и при помощи if команды выбрать среди них наибольший и наименьший. В общем посиди почитай, что такое циклы и переменные. Там не много.
maxI_p = 0; maxJ_p = 0; minI_n = 0; minJ_n = 0;
for (int i=0;i<n;i++) { for (int j=0;j<m;j++) {
if (a[i][j]>0) && (a[i][j]>a[maxI_pos][maxJ_pos])
{
maxI_pos = i; maxJ_pos = j;
};
if (a[i][j]<0) && (a[i][j]<a[minI_n][minJ_n])
{
minI_n = i; minJ_n = j;
};
}
// Результат в a[maxI_p][maxJ_p] и a[minI_n][minJ_n]
for (int i=0;i<n;i++) { for (int j=0;j<m;j++) {
if (a[i][j]>0) && (a[i][j]>a[maxI_pos][maxJ_pos])
{
maxI_pos = i; maxJ_pos = j;
};
if (a[i][j]<0) && (a[i][j]<a[minI_n][minJ_n])
{
minI_n = i; minJ_n = j;
};
}
// Результат в a[maxI_p][maxJ_p] и a[minI_n][minJ_n]
Похожие вопросы
- Дано натуральное число n и вещественная матрица размера n X 9 . Плиз помогите(
- дана матрица а размерности n на m. Найти максимальный элемент в каждом столбце. Помогите пожалуйста решить. На языке C++
- C# Дан массив размера N. Найти 2 элемента массива, сумма которых наиболее близка к максимуму массива и поменять
- даны натуральные числа n и m(0 <=m <= 9)дополнить запись числа n в начале и в конце цифрой m
- Дан массив размера N. Вывести все двузначные элементы массива и их номера. ПОМОГИТЕ pascal ХЕЛП
- Дан массив размера N.Определить количество его промежутков монотонности.
- Помогите :) Дан массив из n целых чисел. Найти количество встречающихся равных чисел.
- Матрица M*N, состоящая из "0" и "1", найти наибольшую фигуру из единиц с помощью рекурсии. С++
- Написать в С++.В заданной матрице A[1:N,1:M] поменять местами следующие два элемента:
- Дана действительная матрица размера n * m организовать однонаправленный список матрицы. Паскаль