Сгенерировать
двухмерные массивы с помощью генератора псевдослучайных чисел rand() отрезка [-100; 100].
1. Ввести прямоугольную матрицу действительных чисел. Поменять местами ее минимальный и
максимальный элемент (считать, что такие элементы едины).
C/C++
Нужен код на Си помогите пожалуйста
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
const int m = 5, n = 7;
int Matrix[m][n];
srand(time(NULL));
/* генерация и показ изначальной матрицы */
for(int x = 0; x < m; x++)
{
for(int y = 0; y < n; y++)
{
Matrix[x][y] = rand() % 201 - 100;
printf("%d\t", Matrix[x][y]);
}
putchar('\n');
}
/* ищим индексы минимального и максимальный элементы */
int i_max_x = 0, i_max_y = 0, i_min_x = 0, i_min_y = 0;
for(int x = 0; x < m; x++)
for(int y = 0; y < n; y++)
{
if(Matrix[x][y] > Matrix[i_max_x][i_max_y])
{
i_max_x = x;
i_max_y = y;
}
if(Matrix[x][y] < Matrix[i_min_x][i_min_y])
{
i_min_x = x;
i_min_y = y;
}
}
/* меняем значения минимума и максимума */
int tmp = Matrix[i_max_x][i_max_y];
Matrix[i_max_x][i_max_y] = Matrix[i_min_x][i_min_y];
Matrix[i_min_x][i_min_y] = tmp;
/* выводи на печать изменённую матрицу */
putchar('\n');
for(int x = 0; x < m; x++)
{
for(int y = 0; y < n; y++)
printf("%d\t", Matrix[x][y]);
putchar('\n');
}
return 0;
}
#include <stdlib.h>
#include <time.h>
int main()
{
const int m = 5, n = 7;
int Matrix[m][n];
srand(time(NULL));
/* генерация и показ изначальной матрицы */
for(int x = 0; x < m; x++)
{
for(int y = 0; y < n; y++)
{
Matrix[x][y] = rand() % 201 - 100;
printf("%d\t", Matrix[x][y]);
}
putchar('\n');
}
/* ищим индексы минимального и максимальный элементы */
int i_max_x = 0, i_max_y = 0, i_min_x = 0, i_min_y = 0;
for(int x = 0; x < m; x++)
for(int y = 0; y < n; y++)
{
if(Matrix[x][y] > Matrix[i_max_x][i_max_y])
{
i_max_x = x;
i_max_y = y;
}
if(Matrix[x][y] < Matrix[i_min_x][i_min_y])
{
i_min_x = x;
i_min_y = y;
}
}
/* меняем значения минимума и максимума */
int tmp = Matrix[i_max_x][i_max_y];
Matrix[i_max_x][i_max_y] = Matrix[i_min_x][i_min_y];
Matrix[i_min_x][i_min_y] = tmp;
/* выводи на печать изменённую матрицу */
putchar('\n');
for(int x = 0; x < m; x++)
{
for(int y = 0; y < n; y++)
printf("%d\t", Matrix[x][y]);
putchar('\n');
}
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define ROWS 4
#define COLS 6
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main(void) {
int matrix[ROWS][COLS] = { 0 };
int i, j, min_i, min_j, max_i, max_j;
srand((unsigned)time(NULL));
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
matrix[i][j] = RAND(-100, 101);
}
}
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
printf("%5i", matrix[i][j]);
}
puts("\n");
}
puts("");
max_i = max_j = min_i = min_j = 0;
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
if (matrix[i][j] < matrix[min_i][min_j]) {
min_i = i;
min_j = j;
}
if (matrix[i][j] > matrix[max_i][max_j]) {
max_i = i;
max_j = j;
}
}
}
printf(" min: matrix[%i][%i] = %i\n", min_i, min_j, matrix[min_i][min_j]);
printf(" max: matrix[%i][%i] = %i\n\n", max_i, max_j, matrix[max_i][max_j]);
swap(&matrix[min_i][min_j], &matrix[max_i][max_j]);
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
printf("%5i", matrix[i][j]);
}
puts("\n");
}
system("pause > nul");
return 0;
}
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define ROWS 4
#define COLS 6
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main(void) {
int matrix[ROWS][COLS] = { 0 };
int i, j, min_i, min_j, max_i, max_j;
srand((unsigned)time(NULL));
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
matrix[i][j] = RAND(-100, 101);
}
}
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
printf("%5i", matrix[i][j]);
}
puts("\n");
}
puts("");
max_i = max_j = min_i = min_j = 0;
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
if (matrix[i][j] < matrix[min_i][min_j]) {
min_i = i;
min_j = j;
}
if (matrix[i][j] > matrix[max_i][max_j]) {
max_i = i;
max_j = j;
}
}
}
printf(" min: matrix[%i][%i] = %i\n", min_i, min_j, matrix[min_i][min_j]);
printf(" max: matrix[%i][%i] = %i\n\n", max_i, max_j, matrix[max_i][max_j]);
swap(&matrix[min_i][min_j], &matrix[max_i][max_j]);
for (i = 0; i < ROWS; ++i) {
for (j = 0; j < COLS; ++j) {
printf("%5i", matrix[i][j]);
}
puts("\n");
}
system("pause > nul");
return 0;
}
Похожие вопросы
- Нужен код на Си помогите пж
- Нужен код на Си помогите пж
- Язык Си. Помогите пожалуйста
- МОЛЮ О ПОМОЩИ!!! НУЖЕН КОД НА C++!!!!!!!!! ПОМОГИТЕ!!!!!!!!!!!
- Помогите, пожалуйста, срочно. Прокомментировать код на Си
- Помогите пожалуйста написать программу на Си
- Помогите переделать код на Си
- Помогите, пожалуйста, написать код на C (Си)
- Помогите пожалуйста написать код.(C++)
- Помогите доработать код на СИ по теме строки