Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.03.2022
Сообщений: 16
1

Функции ввода и вывода двумерных массивов

17.04.2022, 21:43. Показов 887. Ответов 5

Author24 — интернет-сервис помощи студентам
[Error] cannot convert 'int (*)[10]' to 'int**' for argument '1' to 'void vvodm(int**, int*, int*, char)'

Суть ошибки ясна, как исправить не знаю.

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
 
void vvodm(int **p,int *n,int *m,char simv) //функция для ввода массива
{
    setlocale(LC_ALL,"Rus");
    
    printf ("Введите число строк и столбцов\n");
    scanf ("%d %d", &n, &m);
    for(int i=0; i<*n; i++)
        for(int j=0; j<*m; j++)
        {
            printf("Введите %c[%d] [%d]=", simv, i, j);
            scanf("%d", &p[i] [j]);
        }
}
 
void vivodm(int **p, int *n, int *m, char simv) //функция для вывода массива
{
    setlocale(LC_ALL,"Rus");
    
    printf("Массив %c:\n",simv);
    for(int i=0;i<*n;i++)
    {
        for(int j=0;j<*m;j++)
        printf("%d",p[i][j]);
        printf("\n");
    }
}
 
main()
{
    setlocale(LC_ALL,"Rus");
    
    int X[10][10];
    int Y[10][10];
    int Z[10][10];
    int m1,n1,k1,m2,n2,k2; //размеры массивов
 
    vvodm(X,&n1,&n2,'X'); //ввод массивов
    vvodm(Y,&m1,&m2,'Y');
    vvodm(Z,&k1,&k2,'Z');
    
    printf("\n");
 
    vivodm(X,&n1,&n2,'X'); //вывод массивов
    vivodm(Y,&m1,&m2,'Y');
    vivodm(Z,&k1,&k2,'Z');
    
    return(0);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2022, 21:43
Ответы с готовыми решениями:

Функции для ввода/вывода массивов и матриц с помощью шаблонов и перегрузки
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; template&lt;class T&gt; int mass(T...

Написать шаблонные, перегруженные функции для ввода и вывода на экран массивов и матриц
Добрый вечер всем! Помогите написать написать шаблонные, перегруженные функции input и output для...

Функции поиска минимального и максимального элементов в одномерных массивах, ввода и вывода массивов на C++
Помогите пожалуйста с решением задачи. Необходимо в двух одномерных массивах найти минимальный и...

Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)?
Какие есть виды массивов (кроме одномерных, двумерных и двумерных ступенчатых массивов)? И почему...

5
Вездепух
Эксперт CЭксперт С++
12771 / 6653 / 1791
Регистрация: 18.10.2014
Сообщений: 16,817
18.04.2022, 04:50 2
C++
1
2
3
4
void vvodm(int p[10][10],int *n,int *m,char simv) //функция для ввода массива
...
void vivodm(const int p[10][10], int n, int m, char simv) //функция для вывода массива
...
0
0 / 0 / 0
Регистрация: 28.03.2022
Сообщений: 16
18.04.2022, 18:31  [ТС] 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
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 <conio.h>
#include <math.h>
#include <iostream>
 
int vvodm(int p[10][10],int *n,int *m,char simv) //функция для ввода массива
{
    setlocale(LC_ALL,"Rus");
    
    printf ("Введите число строк и столбцов\n");
    scanf ("%d %d", &n, &m);
    for(int i=0; i<*n; i++)
        for(int j=0; j<*m; j++)
        {
            printf("Введите %c[%d] [%d]=", simv, i, j);
            scanf("%d", &p[i] [j]);
        }
}
 
int vivodm(int p[10][10], int *n, int *m, char simv) //функция для вывода массива
{
    setlocale(LC_ALL,"Rus");
    
    printf("Массив %c:\n",simv);
    for(int i=0;i<*n;i++)
    {
        for(int j=0;j<*m;j++)
        printf("%d",p[i][j]);
        printf("\n");
    }
}
 
main()
{
    setlocale(LC_ALL,"Rus");
    
    int X[10][10];
    int Y[10][10];
    int Z[10][10];
    int n1,n2,n3,m1,m2,m3; //размеры массивов
 
    setlocale(LC_ALL,"Rus");
 
    vvodm(X,&n1,&m1,'X'); //ввод массивов
    vvodm(Y,&n2,&m2,'Y');
    vvodm(Z,&n3,&m3,'Z');
    
    printf("\n");
 
    vivodm(X,&n1,&m1,'X'); //вывод массивов
    vivodm(Y,&n2,&m2,'Y');
    vivodm(Z,&n3,&m3,'Z');
    
    return(0);
}
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
18.04.2022, 18:43 4
Цитата Сообщение от bokazhoka Посмотреть сообщение
логическая ошибка при ввводе какая-то?
для чего тебе Conio.h #include <conio.h>

Добавлено через 4 минуты
и зачем используешь printf и scanf?
0
Модератор
Эксперт С++
13690 / 10895 / 6470
Регистрация: 18.12.2011
Сообщений: 29,077
18.04.2022, 18:49 5
Лучший ответ Сообщение было отмечено bokazhoka как решение

Решение

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
#include <stdio.h>
#include <locale.h>
 
void vvodm(int p[10][10],int *n,int *m,char simv) //функция для ввода массива
{
    setlocale(LC_ALL,"Rus");
 
    printf ("Введите число строк и столбцов\n");
    scanf_s("%d%d", n, m);
    if(n>10)n=10;
    if(m>10)m=10;
 
    for(int i=0; i<*n; i++)
        for(int j=0; j<*m; j++)
        {
            printf("Введите %c[%d][%d]=", simv, i, j);
            scanf_s("%d", &p[i][j]);
        }
}
 
void vivodm(int p[10][10], int n, int m, char simv) //функция для вывода массива
{
    setlocale(LC_ALL,"Rus");
 
    printf("Массив %c:\n",simv);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            printf("%d",p[i][j]);
        printf("\n");
    }
}
 
int main()
{
    setlocale(LC_ALL,"Rus");
 
    int X[10][10];
    int Y[10][10];
    int Z[10][10];
    int n1,n2,n3,m1,m2,m3; //размеры массивов
 
    setlocale(LC_ALL,"Rus");
 
    vvodm(X,&n1,&m1,'X'); //ввод массивов
    vvodm(Y,&n2,&m2,'Y');
    vvodm(Z,&n3,&m3,'Z');
 
    printf("\n");
 
    vivodm(X,n1,m1,'X'); //вывод массивов
    vivodm(Y,n2,m2,'Y');
    vivodm(Z,n3,m3,'Z');
 
    return(0);
}
0
Вездепух
Эксперт CЭксперт С++
12771 / 6653 / 1791
Регистрация: 18.10.2014
Сообщений: 16,817
18.04.2022, 18:49 6
Цитата Сообщение от bokazhoka Посмотреть сообщение
но прога все еще не работает
Я не знаю, что означает набор слов "прога не работает". К чему это здесь?
0
18.04.2022, 18:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2022, 18:49
Помогаю со студенческими работами здесь

Лабораторная работа №8. Тема: «Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов. Организация ввода-вывода
ЗАДАНИЕ №4. В каждой задаче задается квадратная матрица NxN. Программа должна осуществлять ввод и...

Сумма двух и более двумерных массивов в отдельной функции. значения массивов взяты из одной функции
Есть вот такое решение https://www.cyberforum.ru/cpp-beginners/thread604506.html, но там объявление...

Удалить из массивов столбцы с нулевым элементом; для ввода, вывода и обработки использовать функции
Помогите написать программу! Вот, что имею. Не работает корректно. В комментариях - то, что...

Напишите программу для заполнения трех двумерных массивов и последующего их вывода
Напишите программу для заполнения трех двумерных массивов и последующего их вывода. Первый...

Написать программу для заполнения трех двумерных массивов последующего их вывода. Есть решение на C, помогите переписать на Pascal
Условие задачи Напишите программу для заполнения трех двумерных массивов последующего их вывода....

Операторы ввода и вывода массивов
Напишите пожалуйста операторы ввода и вывода массивов в си шарп, желательно с примерами. Спасибо.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru