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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2017, 05:20   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию как вывести на экран всю строку в которой находится наибольшей элемент главной диогонали? - C (СИ)

Код:
#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;
}
Александр121 вне форума Ответить с цитированием
Старый 12.12.2017, 08:52   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Когда сохраняете найденный min сохраняйте и номер строки.
waleri вне форума Ответить с цитированием
Старый 12.12.2017, 09:30   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Александр121;1713268[CODE
]min = matrix[0][0]; // поиск
for(i = 0; i < ROWS && i < COLS; ++i) { //минимального
if(min > matrix[i][i]) // числа по главное диогонали
min = matrix[i][i];
}[/CODE]
Код:
    int minIndex = 0;  // поиск
    for(i = 0; i < ROWS && i < COLS; i++) { //минимального
        if(min > matrix[i][i] < matrix[minIndex][minIndex])  // числа на главной диагонали
           minIndex =i;
    }


вывод минимального:
Код:
printf("minimum on main diagonal is %d\n", matrix[minIndex][minIndex]);
вывести всю строку с минимальным:
Код:
        printf("Строка матрицы с минимальным элементом имеет индекс %.2d \n", minIndex);
        printf("Содержимое строки матрицы: \n");
        for(j = 0; j < COLS; j++)
            printf("%.2d ", matrix[minIndex][j]); // числами
        printf("\n");
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.12.2017, 10:39   #4
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

Посмотрите выводит но не правильно


Код:
#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;
}

Последний раз редактировалось Александр121; 12.12.2017 в 10:44.
Александр121 вне форума Ответить с цитированием
Старый 12.12.2017, 10:51   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Александр121 Посмотреть сообщение
Посмотрите выводит но не правильно
извините, я опечатался чуток.
могли бы и догадаться, что в условии
Цитата:
Сообщение от Александр121 Посмотреть сообщение
if(min > matrix[i][i] < matrix[minIndex][minIndex])
min> - это бред.

надо выкинуть переменную min и всё, что с ней связано.

получится так:
Код:
#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 matrix[ROWS][COLS];

    for(i = 0; i < ROWS; ++i) {
        for(j = 0; j < COLS; ++j)
            matrix[i][j] = rand() % 100+10;//генерация чисел в диапазоне от 1 до 100
    }

    int minIndex = 0;  // поиск
    for(i = 0; i < ROWS && i < COLS; i++) { //минимального
        if(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", matrix[minIndex][minIndex]);

    printf("Строка матрицы с минимальным элементом имеет индекс %.2d \n", minIndex);
        printf("Содержимое строки матрицы: \n");
        for(j = 0; j < COLS; j++)
            printf("%.2d ", matrix[minIndex][j]);
        printf("\n");
    return 0;
}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.12.2017, 10:53   #6
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

спасибо огромное))))
Александр121 вне форума Ответить с цитированием
Старый 12.12.2017, 11:06   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пожалуйста!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клик по картинке выделяет строку, в которой она находится vfv Microsoft Office Excel 2 11.03.2012 23:13
Вывести строку с наибольшей цифрой Delphinchik PHP 3 15.11.2010 21:58
Как в столбце найти текст и вывести всю строку? alexey_nv86 Microsoft Office Excel 14 02.11.2010 21:07
Массив в Си. как определить и удалить строчку в которой находится макс элемент Софья9 Помощь студентам 15 11.06.2009 18:46
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 4 03.12.2008 12:13