Страница 1 из 1
как вывести на экран всю строку в которой находится наибольшей элемент главной диогон
Добавлено: 12 дек 2017, 05:25
Кирилл1212
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //для time(0)
#define ROWS 3
#define COLS 3
int main()
{
srand(time(0)); // для инициализации разных последовательностей псевдослучайных чисел
int i = 0;
int j = 0;
int min = 0;
int matrix[ROWS][COLS];
for(i = 0; i < ROWS; ++i) {
for(j = 0; j < COLS; ++j)
matrix[i][j] = rand() % 100+10;//генерация чисел в диапазоне от 1 до 100
}
min = matrix[0][0]; // поиск
for(i = 0; i < ROWS && i < COLS; ++i) { //минимального
if(min > matrix[i][i]) // числа по главное диогонали
min = matrix[i][i];
}
for(i = 0; i < ROWS; ++i) { // выводд матрицы
for(j = 0; j < COLS; ++j)// заполнейно рандомными
printf("%.2d ", matrix[i][j]); // числами
printf("\n");
}
printf("minimum on main diagonal is %d\n", min);
return 0;
}
Re: как вывести на экран всю строку в которой находится наибольшей элемент главной ди
Добавлено: 12 дек 2017, 10:17
Romeo
Ну, для начала найти индекс наибольшего элемента диагонали (сейчас там ищется минимальный элемент этой самой диагонали). А потом просто пробежать по строке с найденным индексом и вывести все элементы.
Re: как вывести на экран всю строку в которой находится наибольшей элемент главной ди
Добавлено: 12 дек 2017, 10:41
Кирилл1212
что то сделал выводи строку но не правильно
Код: Выделить всё
include <stdio.h>
#include <stdlib.h>
#include <time.h> //для time(0)
#define ROWS 3
#define COLS 3
int main()
{
setlocale(0, "");
srand(time(0)); // для инициализации разных последовательностей псевдослучайных чисел
int i = 0;
int j = 0;
int min = 0;
int matrix[ROWS][COLS];
for(i = 0; i < ROWS; ++i) {
for(j = 0; j < COLS; ++j)
matrix[i][j] = rand() % 100+10;//генерация чисел в диапазоне от 1 до 100
}
min = matrix[0][0]; // поиск
for(i = 0; i < ROWS && i < COLS; ++i) { //минимального
if(min > matrix[i][i]) // числа по главное диогонали
min = matrix[i][i];
}
int minIndex = 0; // поиск
for(i = 0; i < ROWS && i < COLS; i++) { //минимального
if(min > matrix[i][i] < matrix[minIndex][minIndex]) // числа на главной диагонали
minIndex =i;
}
for(i = 0; i < ROWS; ++i) { // выводд матрицы
for(j = 0; j < COLS; ++j)// заполнейно рандомными
printf("%.2d ", matrix[i][j]); // числами
printf("\n");
}
printf("minimum on main diagonal is %d\n", min);
printf("Строка матрицы с минимальным элементом имеет индекс %.2d \n", minIndex);
printf("Содержимое строки матрицы: \n");
for(j = 0; j < COLS; j++)
printf("%.2d ", matrix[minIndex][j]); // числами
printf("\n");
return 0;
}
Re: как вывести на экран всю строку в которой находится наибольшей элемент главной ди
Добавлено: 12 дек 2017, 11:22
Romeo
Боже, что это?
Код: Выделить всё
if(min > matrix[i][i] < matrix[minIndex][minIndex]) // числа на главной диагонали
Результат операции > типа bool ты сравниваешь потом на меньше.
Всё куда проще. Выкини вообще эти циклы и напиши заново. Индекс максимального элемента диагонали находится за один проход без всяких логических излишеств. И обрати внимание, по заданию он должен быть именно максимальным, а не минимальным.