1 / 1 / 1
Регистрация: 17.03.2013
Сообщений: 69
1

Двумерные массивы, как аргументы функций задачи

06.01.2015, 11:24. Показов 3362. Ответов 0
Метки нет (Все метки)

ЗАДАНИЕ 1. Возврат массива из функции.

1. Написать функцию get_arr, которая предназначена для заполнения значениями двумерных массивов произвольной длины. Функция имеет два аргумента
а) arr - указатель на первую строку массива;
б) len - число элементов в строке.
Функция выводит текст "Введите эначения элементов массива:".Затем предлагает ввод элементов поочередно в виде "arr[0][0]= ","arr[0][1]= " и так для всех элементов.

2. Функция main должна иметь следующую структуру.
Массив a определяется без инициализации: int а[N1][N2];
Вызывается функция get_arr и в диалоге вводятся значения элементов.
Выводится текст "Элементы массива получили значения значения:".
Вызывается функция print_arr (см. ниже).

3. Размер массива в функции main определить с помощью именованных констант N1 и N2, определяемых препроцессорной директивой. Проверить работу программы при разных размерах массива.



ЗАДАНИЕ 2. Передача двумерного массива в функцию.

1. Написать функцию print_arr, которая предназначена для вывода на экран значений элементов типа int двумерного массивов любой длины. Функция выводит значения в виде таблицы. Количество элементов, выводимых в строке таблицы совподает с количеством элементов в строке массива
Функция print_arr имеет два аргумента:
1. arr - указатель на первую строку массива;
2. len - число элементов в строке.
Функция выводит значения с указанием соответствующего элемента:
arr[0][0]= ... arr[0][1]= ... и т.д.
Значения в строке разделяются с помощью символа пробела.


ЗАДАНИЕ 3. Использование адресной арифметики для обращения к элементам
двумерного массива.

1. Написать функцию print_arr_second, которая предназначена вывода на экран значений элементов типа int двумерного массивов любой длины. Функция выводит значения в виде таблицы. Количество элементов, выводимых в строке таблицы задается четвёртым параметром функции Функция print_arr имеет четыре аргумента:
1. arr - указатель на первый элемент массива;
2. len1 - число строк;
3. len2 - число элементов в строке.
4. n - количество элементов, выводимых в строке таблицы
Значения в строке разделяются с помощью символа пробела.

Добавлено через 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#define N1 3
#define N2 2
void get_arr(int arr[][N2])
{
    puts("Введите значения элементов массива:");
    for (int i=0;i!=N1;i++)
        for (int j=0;j!=N2;j++)
        {
            printf("arr[%d][%d]=",i,j);
            scanf_s("%d", &arr[i][j]);
        }
}
 
void print_arr(int (*arr)[N2])
{
    puts("Элементы массива получили значения:");
    for (int i=0; i<N1; i++)
        for (int j=0; j<N2; j++)
        {
            printf("arr[%d][%d]=%d ", i, j, arr[i][j]);
            if (j==N2-1)puts("");
        }
}
 
void print_arr_second(int * arr, int len1, int len2, int n)
{
    int p=0,c=0;
    for (int i=0; i!=len1; i++)
        for (int j=0; j!=len2; j++)
        {
            c++;
            printf("arr[%d][%d]=%d ",i,j,*(arr+p));
            if (c==n){
                c=0;
                puts("");
            }
            p++;
        }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a[N1][N2],n;
    setlocale(LC_ALL,"Russian");
    get_arr(a);
    print_arr(a);
    puts("Количество элементов, выводимых в строке таблицы:");
    scanf_s("%d",&n);
    print_arr_second(&a[0][0],N1,N2,n);
    _getch();
}

Правильно?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2015, 11:24
Ответы с готовыми решениями:

Двумерные массивы с использованием функций
вот сама задача: Составить функцию преобразования матрицы A в новую матрицу путем вычеркивания...

Задачи на двумерные массивы
Помогите решить следующие задачи: 1. В квадратном массиве поменять местами строку и столбец, на...

Использование шаблонов функций в задаче на двумерные массивы
Уважаемые программисты, необходима ваша помощь. Условие задачи:Дана прямоугольная матрица. Найти...

Как представляются двумерные массивы?
Создал двумерный массив. И немного не врубаюсь. Если пиши вот так вот mas выводит 0, если вот так...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2015, 11:24
Помогаю со студенческими работами здесь

Динамические двумерные массивы через указатели. Как это происходит?
Вот типичная идентификация двумерного массива (NxM): int** mass = new int*; for(i=0; i&lt;N;...

Аргументы функций (синтаксис)
ПАМАГИТЕ не могу разобраться с функциями а именно с аргументами и синтаксисом,в большинстве...

программа перемножает двумерные массивы. Как объявить функцию mul (умножения) в main ?
////////////////////////////class.h //файл заголовка #include &lt; iostream&gt; using namespace std;...

Как перегрузить функцию умножения(сделать operator*()? Эта программа перемножает двумерные массивы
Как перегрузить функцию умножения(сделать operator*()? Эта программа перемножает двумерные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru