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

Функция, принимающая двумерный массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск символа в массиве http://www.cyberforum.ru/cpp-beginners/thread780645.html
Задача: Дано два линейных символьных массива. Найти наименьший символ среди символов первого массива, который не входит во второй массив. Помогите, пожалуйста.
C++ Не могу найти ошибку Всем здравствуйте. Я являюсь болельщиком Ф1, и решил написать простенькую программку, которая бы суммировала очки за гонку и записывала бы их в файл, но записывается почему-то только одно последнее значение. Помогите найти ошибку #include <iostream> #include <fstream> #include <vector> #include <string> #include <windows> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread780643.html
C++ Матрицы инцидентнности и смежности
Помогите написать программу, на входе дан текстовый файл вида: n m v1 u1 v2 u2 ......... vm um где n - количество вершин графа, m - количество ребер, v и u - начальное и конечное значение ребра(целые числа >1) а на вывод функции должно вывести матрицу инцидентнности и смежную матрицу. Не имеет значение куда, на экран либо в текстовый файл.
Работа со звуком в C++ C++
В общем сабж таков : В системе , играется какой либо файл , на каком либо плеере , либо вообще без него ...(Система - шиндоуз 32 - хп).. Надо получить данные частот , играемые в данный момент ... Вопрос , в какую сторону рыть ????Dsound :??
C++ Что делать?(учу C++ и кое что ни понимаю может стоит начать с более "низких языков" например basic) http://www.cyberforum.ru/cpp-beginners/thread780635.html
Всем привет народ вот я учу C++ и кое что ни понимаю может стоит начать с более "низких языков" например basic?
C++ объясните задание. не понимаю формулировку вот собственно оно: 1. Разработать класс "большое десятичное число" в соответствии со следующим заданием: Состояние класса - Целое число определяется его длиной (количество цифр в числе, например, до 47) и массивом значений десятичных цифр (типа char). Число со знаком хранится в прямом коде. При выполнении арифметических операций использовать дополнительный код. Память под массив выделяется... подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,405
06.02.2013, 19:22     Функция, принимающая двумерный массив
Сейчас покажу все способы работы с двум. массивом
1. самый верный на мой взгляд. Позволяет работать с массивами любого размера
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
#include <iostream>
 
void foo(int **A, const int M, const int N)
{
    for (int i=0; i < M; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << A[i][j] << " ";
        std::cout << std::endl;
    }
}
 
 
 
int main()
{
    const int M = 3, N = 4;
    int **arr = new int*[M];
    for (int i=0; i < M; i++)
    {
        arr[i] = new int[N];
        for (int j=0; j < N; j++)
            arr[i][j] = i * N + j;
    }
    foo(arr, M, N);
 
    for (int i=0; i < M; i++)
        delete []arr[i];
    delete []arr;
}
2. Уже работает лишь с конкретными размерами
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
#include <iostream>
 
const int M = 3;
const int N = 4;
 
void foo(int A[M][N])
{
    for (int i=0; i < M; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << A[i][j] << " ";
        std::cout << std::endl;
    }
}
 
 
 
int main()
{
    int arr[M][N];
    for (int i=0; i < M; i++)
        for (int j=0; j < N; j++)
            arr[i][j] = i * N + j;
    foo(arr);
}
3. Похож на первый, но я бы назвал это С-стайл, по моему самый некорректный/недостойный.
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
#include <iostream>
#define M 3
#define N 4
 
void foo(int A[M][N])
{
    for (int i=0; i < M; i++)
    {
        for (int j=0; j < N; j++)
            std::cout << A[i][j] << " ";
        std::cout << std::endl;
    }
}
 
 
 
int main()
{
    int arr[M][N];
    for (int i=0; i < M; i++)
        for (int j=0; j < N; j++)
            arr[i][j] = i * N + j;
    foo(arr);
}
Есть еще вариант с magic number, его я вообще не буду рассматривать, это "вариант-не вариант".
 
Текущее время: 20:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru