Форум программистов, компьютерный форум CyberForum.ru

Наименьшее число в каждом ряду двумерного массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование классов http://www.cyberforum.ru/cpp-beginners/thread234233.html
Класс Члены класса Методы Операторы перегрузки Исходные данные Матрица Размерность Конструктор, Сложение (+), A=(5 1 7 матрицы, деструктор, вычитание (-), 10 -2 1 элементы метод вывода умножение (*) 2-х ...
C++ Вычислить количество положительных чисел, кратных 7 и не кратных 5 Люди добрые, незлые!Помогите с задачей. Очень, очень надо! Вводится последовательность целых чисел, о - конец последовательности. Вычислить количество положительных чисел, кратных 7 и не кратных 5 и сумму отрицательных элементов последовательности. P.S. :Можете даже назвать меня нубом,ламером или ещё кем то из этого ряда :) ,но не могу я её написать сам.... http://www.cyberforum.ru/cpp-beginners/thread234231.html
C++ Цикл
Здраствуйте помогите пожалуйста с написанием задачки С клавиатуры вводятся целые числа. Признак конца ввода – число 0. Определить число, следующее за последним из отрицательных чисел. и вот эта Установить, четным или нечетным является число цифр в записи данного натурального числа. Если число цифр нечетно, вывести среднюю цифру. Заранее спасибо))
Массивы в с++ для начинающих C++
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее арифметическое простых элементов массива до и после вставки.
C++ WinAPI Создание кнопки с иконкой на WinAPI http://www.cyberforum.ru/cpp-beginners/thread234201.html
Мне нужно создать кнопку с иконкой на WinAPI, помогите пожалуйста!
C++ В одномерном массиве найти элементы меньше всего отличающихся от введеного числа Прошу помощи: 1) В одномерном массиве найти элементы меньше всего отличающихся от введеного числа. Решить без и с использованием функции. 2) В двумерном массиве указать столбец (столбцы) элементы которых расположены по возрастанию. Заранее Спасибо!!! подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5765 / 3414 / 255
Регистрация: 08.02.2010
Сообщений: 7,431
27.01.2011, 10:11     Наименьшее число в каждом ряду двумерного массива
Цитата Сообщение от jambas92 Посмотреть сообщение
Здравствуйте!Добавлю свой вариант, здесь произвольно вводится n и m, затем вводится сама двумерная матрица n x m, и в этой матрице находится минимум в ряду
нехороший код. Если уж n и m вводятся с клавиатуры, то саму матрицу надо бы сделать динамической. И почему у нас начальное значение min равно именно 200? А если все значения в какой-то строке окажутся больше 200? Это в дополнение к комментарию выше.

Я бы сделал так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
 
#define getElem(M, I, J) { printf("Input " #M "[%u][%u]: ", (I), (J)); scanf("%d", &(M)[(I)][(J)]); }
 
void errExit(const char* fmt, ...);
 
int main()
{
    size_t rows, cols, i, j;
    int min;
    int** matrix;
 
    printf("Input the number of rows:\n? ");
    scanf("%u", &rows);
    printf("Input the number of columns:\n? ");
    scanf("%u", &cols);
 
    if((matrix = malloc(sizeof(char*) * rows)) == NULL)
    errExit("Can't allocate memory for matrix %ux%u\n", rows, cols);
 
    for(i = 0; i < rows; ++i)
    if((matrix[i] = malloc(sizeof(char*) * cols)) == NULL)
        errExit("Can't allocate memory for the %u row of the matrix", i);
 
    for(i = 0; i < rows; ++i)
    for(j = 0; j < cols; ++j)
        getElem(matrix, i, j);
 
    for(i = 0; i < rows; ++i)
    {
    min = matrix[i][0];
    for(j = 1; j < cols; ++j)
        if(min > matrix[i][j])
        min = matrix[i][j];
    printf("Min elem in the %u row is %d\n", i, min);
    }
 
    for(i = 0; i < rows; ++i)
    free(matrix[i]);
 
    free(matrix);
 
    exit(0);
}
 
void errExit(const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);
    vfprintf(stderr, fmt, ap);
    va_end(ap);
    exit(1);
}
 
Текущее время: 12:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru