Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 06.03.2016
Сообщений: 2

Функция проверки двумерного массива C++

06.03.2016, 01:34. Показов 5360. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Мне нужна помощь вот в чем - мое полное задание это написать игру пятнашки которая должна состоять из 5 функций!!
1 - функция которая заполняет массив случайными числами от 0 до 16
2 - функция которая выводит этот исходный массив с которого все начинается
3 - функция которая находит позицию нуля в массиве
4 - функция которая двигает нулем как пустой ячейкой
5 - функция которая проверяет массив на победу

я сделал все функции кроме последней пятой
5 - функция которая проверяет массив на победу - это значит что она принимает заполненный массив и если он упорядочен с 1 до 15 и последний элемент 0 тогда она возвращает значение истина!!!
примерно так!!! и я никак не могу последнюю функцию сделать правильно!!!

вот тут я остановился!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool win_check(int mas[][2], int row, int col) //Проверка на победу
{
    bool win;
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (mas[i][j] < mas[i][j + 1] && mas[1][1] == 0)
            {
                win = true;
                break;
            }
            else
            {
                win = false;
            }
        }
    }
    return win;
}
этот код не работает!! помогите пожалуйста разобраться в чем дело, что я не так делаю!
Спасибо огромное за помощь
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2016, 01:34
Ответы с готовыми решениями:

Программа проверки двумерного динамического массива на простое число
Здраствуйте,мне поставили задачу написать программу проверки двумерного динамического массива на простое число.Так вот массив я составил...

Рекурсивная функция проверки массива
Помогите, пожалуйста. Нужно написать Рекурсивную функцию, проверяющую все ли числа массива равны 0 или 1 или 2. Добавлено через 7...

Функция объявления двумерного массива
Данный код - объявляет двумерный массив arr. Как из этого куска кода сделать функцию? Передаваемые параметры как мне кажется n и m, а...

3
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
06.03.2016, 01:35
В общем случае, для оформления кода,
выделите код и нажмите на кнопку соответствующего языка (см. изображение)
0
52 / 52 / 24
Регистрация: 24.12.2011
Сообщений: 133
06.03.2016, 01:48
Можно начать с того, что первый элемент матрицы - это mas[0][0], а не mas[1][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
bool win_check(int mas[][], int row, int col) //Проверка на победу
{
    bool win = true;
    int previous = -1;
 
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (i == 0 && j == 0)
                previous = mas[0][0];
            else
                if (mas[i][j] > previous)
                {
                    win = false;
                    break;
                }
 
            previous = mas[i][j];
        }
    }
    return win;
}
Добавлено через 6 минут
Прошу прощения, вот правильный код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool win_check(int mas[][], int row, int col) //Проверка на победу
{
    int previous = -1;
 
    for (int i = 0; i < row; i++)
    {
        for (int j = 0; j < col; j++)
        {
            if (i == 0 && j == 0)
                previous = mas[0][0];
            else
                if (mas[i][j] > previous)
                    return false;
 
            previous = mas[i][j];
        }
    }
    return true;
}
0
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,749
06.03.2016, 08:32
Можно наверное улучшить, пока только учусь
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
#include <iostream>
#include<cstdlib>
using namespace std;
bool win_check(int *, int row, int col);
 
int main()
{
    const int row = 4, col = 4;
    int mas[row][col];
    int *p = &mas[0][0];
    
    for (int i = 0; i < row*col; i++)
    {
        *(p + i) = i+1;
        if(!(i%row)) cout <<endl;
        if (i == 15 ) *(p + i) = 0;
        cout << *(p + i) << "\t";
    }
    cout << endl;
    
    if (win_check) cout << "Yess";
   
   return 0; 
}
 
bool win_check(int *p, int row, int col) //Проверка на победу
{
    bool win =true;
    if (*(p + 15)  != 0 ) win = false; //и можно выйти
    for (int i = 0; i < row*col-1; ++i)
    {
     if( *(p + i)  != (i+1) ) win = false;
    }
     return win;
}
Добавлено через 12 минут
C++
1
21 if (win_check(p, row, col)) cout << "Yess";
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2016, 08:32
Помогаю со студенческими работами здесь

Функция печати двумерного массива
Компилируется успешно, но при вызове функции Print() выводя &quot; |1&quot; попадает в бесконечный цикл. void Print(float **M, int n, int m) { ...

Функция для двумерного массива
Мне нужно написать функцию или скажите, пожалуйста, правильно ли она составлена в коде /* в каждой строке существуют элементы на...

Функция ввода двумерного массива
Ребят, помогите! Надо написать функцию чтобы с помощью нее мы вводили двумерный массив! Не знаю какие параметры задать и что внутри...

Функция сортировки двумерного массива
необходимо написать функцию сортирующую двумерный массив. за основу взял сортировку при помощи указателей типа: for (int g=0;...

Шаблонная функция для двумерного массива
Всем дорого здравия! Насколько безопасно использовать такую функция и для статических и для динамических массивов: #include...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru