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

Удаление заданого элемента матрицы,двумерные массивы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обработка двумерного массива,наибольшее из значений элементов столбца http://www.cyberforum.ru/cpp-beginners/thread520281.html
Дана целочисленная квадратная матрица размера nxn, где 5≤n≤25. Программа должна быть разбита на несколько функций и обязательно содержать: 1. Функцию формирования исходного массива; 2. Функцию...
C++ разработать программу на си++ вычисления выходного значения функции Задание: разработать программу на си++ вычисления выходного значения функ-ции y = \operatorname{f} (x_1, x_2, x_3, x_4) = \frac{\operatorname{tg} (x_1 - x_3)}{127 + x_3} \cdot \operatorname{tg}(x_3... http://www.cyberforum.ru/cpp-beginners/thread520257.html
Сортировка диагоналей матрицы методом Шелла/вставок C++
Дана матрица размерностью n*n, содержащая целые числа. Отсортировать диагонали матрицы, параллельные побочной, по возрастанию элементов алгоритмом Шелла/методом вставок. Помогите хотя бы одним из...
Необходимо изменить размеры окна консоли C++
Приветствую. Необходимо изменить размеры окна консоли, допустим, на 50 * 50 средствами WinAPI, поэтому вот такой код system ("mode con cols=50 lines=50"); не подходит. Посмотрел MSDN,...
C++ Написать программу, которая, согласно запросу пользователя, выводит информацию об абонентах http://www.cyberforum.ru/cpp-beginners/thread520223.html
нужно написать программу которая бы согласно запросу пользователя выводит информацию об абонентах, подключенных к одной АТС.
C++ Разбор числа Всем привет. Нужно разобрать число на две части. Первая часть(инструкция) - шестнадцатеричное число, вторая часть(операнд) - десятичное. Допустим имеем 0xA225. Инструкция - 0xA2, операнд - 25.... подробнее

Показать сообщение отдельно
Raikerian
9 / 9 / 1
Регистрация: 10.05.2011
Сообщений: 101
25.03.2012, 00:20
Исправил:
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
56
57
58
59
60
61
62
63
#include <stdio.h>
using namespace std;
void output_arr(int arr[25][25],int nl, int nc) //Вывод массива на экран
{
    int i,j;
    for(i=0;i<nl;i++)
    {
        for(j=0;j<nc;j++)
        {
            printf("%d\t",arr[i][j]);
        }
        printf("\n");
    }
}
void input_arr(int arr[25][25],int nl, int nc) //Ввод массива с клавиатуры
{
    int i,j;
    for(i=0;i<nl;i++)
    {
        for(j=0;j<nc;j++)
        {
            printf("a[%d][%d]=",i+1,j+1);scanf("%d",&arr[i][j]);}
        printf("\n");
    }
}
void del(int arr[25][25],int nl, int nc)//Удаление строки
{
    int i,j,max=0,temp,count[25];
    for(i=0;i<nl;i++)
        count[i]=0;
    for (i=0; i<nl; i++)
    {
        for ( j=0; j<nc; j++)
        {
            if (arr[i][j] != 0)
            {
                count[i] = count[i] + 1;
            }
        }
    }
 
    for ( i=0; i<nl; i++) // Ищем строку с максимальным элементом
    {
        if (count[i] > max)
        {
            max = count[i];
            temp = i; //Сохраняем номер строки
        }
    }
    for (i=temp; i<nl; ++i)
        for (j=0; j<nc; ++j)
            arr[i][j]=arr[i+1][j];
}
int main()
{
    int nl, nc, arr[25][25];
    scanf("%d %d",&nl,&nc);
    input_arr(arr,nl,nc);
    del(arr, nl, nc);
    nl--;
    output_arr(arr,nl,nc);
    return 0;
}
Собственно зачем вовсе использовался указатель а затем ссылка на него? Убрал. Затем, max надо было инициализировать при объявлении (приравнять нулю).
Так же никчему использовать функции типа int, ведь нам ничего возвращать не надо (никаких значений). Изменил на void.
Ну всё вроде, проверяйте.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru