0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 143

Ошибка в программе

30.04.2016, 15:00. Показов 1026. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выдаёт ошибку 'massiv' was not declared in this scope в 58 строке. Помогите понять в чем проблема...
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
64
65
#include <iostream>
 
using namespace std;
int M[5][5]={2,6,4,0,5,7,0,9,1,4,6,5,8,9,3,7,2,8,3,1,8,3,2,9,7};
int Mas[5][5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int Mas1[5][5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i,j,n;
int sdvig_vlevo(int arr[], int n, int i, int j)
{
    for (j=0; j<5; j++)
    for (i=0; i<5; i++)
    {
 
        Mas[j][i]=M[(j+n)%5][i];
        }
        for (i=0; i<5; i++) // проход по столбцу
    {
        for (j=0; j<5; j++) //проход по стоке
        cout<< Mas[j][i]<<"  " ;
        cout<<endl;
        }
        cout<<endl;
 
}
int sdvig_vniz (int arr[], int n, int i, int j)
{
     for (j=0; j<5; j++)
    for (i=0; i<5; i++)
    {
 
        Mas[j][i]=M[(j+n)%5][i];
 
        }
        for (i=0; i<5; i++) // проход по столбцу
    {
        for (j=0; j<5; j++) //проход по стоке
 
        cout<< Mas1[j][i]<<"  " ;
        cout<<endl;
    }
}
 
int main()
{setlocale(0,"");
    cout<< "Введите число символов, на которое осуществляется сдвиг: ";
    cin>>n;
    cout<<endl;
    i=0;
    j=0;
cout<<"Исходный массив:"<<endl<<endl;
for (i=0; i<5; i++) // проход по столбцу
    {for (j=0; j<5; j++) //проход по стоке
        cout<< M[j][i]<<"  " ;
    cout<<endl;
    }
    cout<<endl;
 
cout<<"Сдвиг матрицы на "<<n<<" элемент влево:\n\n"<<sdvig_vlevo(massiv, n, 5, 5); //Здесь ошибка
 
cout<<"Сдвиг матрицы на "<<n<<" элемент вверх:\n\n"<<sdvig_vniz (massiv, n, 5, 5);
 
 
 
    return 0;
}
Добавлено через 1 минуту
Программа осуществляет циклический сдвиг элементов прямоугольной матрицы влево и вниз с помощью функций
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2016, 15:00
Ответы с готовыми решениями:

ошибка в программе
Не могу найти проблему #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; class A { int...

Ошибка в программе
Доброе утро! Прошу у вас помощи с программой: не хочет работать. Буду очень благодарен за любую помощь! // ConsoleApplication1.cpp:...

Ошибка в программе
Здравствуйте,методы sumaBruttoTowar() и sumaBruttoUsluga() не правильно считают сумму Брутто после инициализации данных в конструкторе в...

6
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
30.04.2016, 15:23
C++
1
massiv
ну правильно компилятор тебе пишит, что это за штука?откуда появилась?

Добавлено через 1 минуту
По логики ты это должен туда передавать
C++
1
M[j][i]
1
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 143
30.04.2016, 15:47  [ТС]
Черный мечник,
C++
1
2
cout<<"Сдвиг матрицы на "<<n<<" элемент влево:\n\n"<<sdvig_vlevo(Mas, n, 5, 5);   //58
cout<<"Сдвиг матрицы на "<<n<<" элемент вверх:\n\n"<<sdvig_vniz (Mas1, n, 5, 5);  //59
Теперь ошибка в 58 строке: cannot convert 'int (*) [5]' to 'int*' for argument '1' to 'int sdvig_vlevo (int*, int, int, int)'
и аналогичная в 59: cannot convert 'int (*) [5]' to 'int*' for argument '1' to 'int sdvig_vniz (int*, int, int, int)'
0
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
30.04.2016, 16:31
Повторю за Черный мечник - правильно компилятор тебе пишет...
В функциях ты объявляешь int arr[] , а отдаешь туда ссылку на двумерный массив.
Кстати int arr[] ты собственно внутри функций и не пользуешь.
Насколько я понял по коду - ты оперируешь глобальными статическими массивами. А значит int arr[] можно вообще исключить из описания функции и при ее вызове не отдавать туда уже ссылку на массивы. Они же глобальные в твоем случае. Но тогда оперировать ты будешь лишь с теми глобальными массивами, которые указаны в функциях.
1
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 143
30.04.2016, 20:48  [ТС]
Petrolion, спасибо, это я поняла)) Но результат программы всё равно не радует. Вот собственно программа:
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
#include <iostream>
 
using namespace std;
int M[5][5]={2,6,4,0,5,7,0,9,1,4,6,5,8,9,3,7,2,8,3,1,8,3,2,9,7};
int Mas[5][5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int Mas1[5][5]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i,j,n;
int sdvig_vlevo(int n, int i, int j)
{
    for (j=0; j<5; j++)
    for (i=0; i<5; i++)
    {
 
        Mas[j][i]=M[(j+n)%5][i];
        }
       for (i=0; i<5; i++) // проход по столбцу
    {
        for (j=0; j<5; j++) //проход по стоке
        cout<< Mas[j][i]<<"  " ;
        cout<<endl;
        }
        cout<<endl;
}
int sdvig_vverh (int n, int i, int j)
{
     for (j=0; j<5; j++)
    for (i=0; i<5; i++)
    {
 
        Mas1[j][i]=M[j][(i+n)%5];
 
        }
        for (i=0; i<5; i++) // проход по столбцу
    {
        for (j=0; j<5; j++) //проход по стоке
 
        cout<< Mas1[j][i]<<"  " ;
        cout<<endl;
    }
 
}
 
int main()
{setlocale(0,"");
    cout<< "Введите число символов, на которое осуществляется сдвиг: ";
    cin>>n;
    cout<<endl;
    i=0;
    j=0;
cout<<"Исходный массив:"<<endl<<endl;
for (i=0; i<5; i++) // проход по столбцу
    {for (j=0; j<5; j++) //проход по стоке
        cout<< M[j][i]<<"  " ;
    cout<<endl;
    }
    cout<<endl;
 
cout<<"Сдвиг матрицы на "<<n<<" элемент влево:\n\n"<<sdvig_vlevo(n, i, j);
cout<<"Сдвиг матрицы на "<<n<<" элемент вверх:\n\n"<<sdvig_vverh (n, i, j);
 
    return 0;
}
И прикрепляю результат. Что поменять, чтобы выглядело это нормально? Сначала написано "сдвиг матрицы на n элементов влево/вверх", а потом сама матрица.
Миниатюры
Ошибка в программе  
0
24 / 24 / 8
Регистрация: 02.02.2016
Сообщений: 135
30.04.2016, 21:08
Лучший ответ Сообщение было отмечено anastalex как решение

Решение

Тут совсем просто. Строки 58 и 59 вы выводите результат функции (который вы в функции не определили) - отсюда лезущие числа мусора. А в самих функциях используете cout который получается срабатывает раньше чем вывод заголовка (ибо заголовок ожидает когда отработает функция).
Чтобы это поправить достаточно заменить эти две строки на:
C++
1
2
3
4
cout<<"Сдвиг матрицы на "<<n<<" элемент влево:\n\n";
sdvig_vlevo(n, i, j);
cout<<"Сдвиг матрицы на "<<n<<" элемент вверх:\n\n";
sdvig_vverh (n, i, j);
PS. В таких случаях можно функции вообще void объявлять.
1
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 143
30.04.2016, 21:33  [ТС]
Petrolion, Спасибо большое!!! Всё получилось!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.04.2016, 21:33
Помогаю со студенческими работами здесь

Ошибка в программе
Откуда берутся эти числа? Задание (если нужно): Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в...

Ошибка в программе
Помогите найти ошибку в программе. Выдает Wrong answer 23 тест using System; class Program { static...

ошибка в программе!
У меня стоит Win 7 и Есть Delphi 7! Программа раньше работала норм на Win XP, Сейчас же (на Win 7) выдает ошибку! Unit1.pas(7):...

Ошибка в программе
Program P1; type Individ = class FIO: string; Document: string; public constructor Create(nFIO, nDOc: string); begin FIO :=...

Ошибка в программе
Программа переводит выражение из инфиксной формы в постфиксную и вычисляет его. По заданию задачу нужно разбить на процедуры P1...


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

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

Новые блоги и статьи
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг. Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя. Странные серые краски проникают и. . .
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru