С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Реализовать класс "Длинных чисел" (найти причины и способы устранения ошибки) Всем привет:) помогите пожалуйста решить проблему: делаю класс длинных чисел, обязательно нужно использовать конструкторы(по умолчанию, с параметрами и копирования), вроде делаю все, как у людей, там, объявление в хедере, реализация в одном файле, мэйн в другом. Но почему то при компиляции выдает мне от 35 до 45 ошибок, первая из которых называется переопределение типа "class", остальные или... https://www.cyberforum.ru/ cpp-beginners/ thread1629922.html C++ Как выбрать класс из консольного меню?
Есть классы графических фигур, описание их - в соответствующих файлах. Для всех них есть метод рисования Draw(), выполненный на основе библиотеки BGI grahpics.h; Делаю программу так, чтобы выбирался массив экземпляров класса путем ввода с клавиатуры. В дальнейшем будет идти обработка данных в зависимости от введенного класса. Требуется сократить программу и не делать всех вариантов обработки...
C++ Посоветуйте литературу по с++(с большим приоритетом на блок-схемы) https://www.cyberforum.ru/ cpp-beginners/ thread1629909.html
Еще раз доброго времени суток дорогие форумчане, решил избавиться от очередного страха, который заставляет меня засомневаться каждый раз при чертеже блок-схемы(алгоритма) программы. Скачал достаточно большое кол-во литературы и видео уроков, но ни в одном нету детального объяснения этих блок-схем. Чтобы с нуля и до опытного кодера. Заранее благодарю, с уважением..
C++ Разложение на простые множители решетом Эратосфена https://www.cyberforum.ru/ cpp-beginners/ thread1629875.html
Всем привет! Помогите, пожалуйста, отыскать ошибку или значение, которое неправильно вычисляется. Не могу понять, где проблема. Решаю задания на одном сайте, решение проходит несколько автоматических тестов на сервере. Один из тестов выдаёт сообщение, что получен неверный ответ. Задание: разложить число натуральное число N (2 ≤ N ≤ {2}^{31} - 1) на простые множители. ...
C++ Разработать класс векторов произвольной одинаковой длины
Добрый вечер! Прошу помочь с задачей :) Разработать класс векторов произвольной одинаковой длины. Переопределить операции сложения, вычитания, операцию ++ прибавления 1 ко всем элементам. Создать массив из четырех векторов и найти среди них два с максимальным средним значением для их суммы. Заранее спасибо! :)
C++ Разработать класс "Матрица" https://www.cyberforum.ru/ cpp-beginners/ thread1629873.html
Добрый вечер! Прошу помочь с задачей :) Разработать класс матриц размера 2 на 2. Переопределить операции сложения, умножения и вычитания матриц, вычисления детерминанта. Создать класс-потомок нижнетреугольных матриц с одинаковыми ненулевыми элементами на диагонали, ввести в нем операции сложения и взятия обратной матрицы. В основное программе проверить на корректность. Заранее спасибо! :)
C++ Разработать класс "Комплексное число", переопределить четыре арифметических действия и операцию сравнения Добрый вечер! Прошу помочь с задачей :) Разработать класс комплексных чисел, переопределить четыре арифметических действия и операцию сравнения. В основной программе проверить корректность. Создать массив комплексных чисел, длину массива задать с экрана. Найти число элементов массива, отличных от деления первого числа на последнее. Заранее спасибо! :) https://www.cyberforum.ru/ cpp-beginners/ thread1629872.html Пытаемся прикрутить CMake к QtCreator под OS X C++
Доброе время суток, навеяло темой о самой лучшей IDE! И так собрался я подружить Qt и cmake (Qbs что то мне не пошел)! С начало полез в настройки самой IDE, там есть встроенный генератор, называется так эпично (Ninja), дума ну супер не надо не каких танцев с бубной, а нет, он не умеет и половины того что предусмотрено что бы собрать нормальный проект, и так дальше скачал с оффа чистый cmake...
C++ Ищу книгу о сетевом программировании на с++ Можете подсказать какую-нибудь книгу о сетевом программировании на с++. Буду признателен. https://www.cyberforum.ru/ cpp-beginners/ thread1629862.html C++ Используя указатели меняем максимальный элемент с первым местами https://www.cyberforum.ru/ cpp-beginners/ thread1629855.html
Всех с прошедшым новым годом! Здравствуйте. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти максимальный элемент и поменять его с первым элементом. Не использовать глобальных переменных. Ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. ...
C++ В целочисленной матрице найти минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали
Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Помогите ребят, работаю в Visual studio 2013, до нового года нужно сдать, а это ток начало потом обрабатывать надо.
C++ Написать код, проверяющий корректность ввода Программа должна следить, чтоб вместо цифр не ввели буквы, или вместо
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
01.01.2016, 22:15  [ТС] 0

Проверка каждого элемента массива - C++ - Ответ 8571055

01.01.2016, 22:15. Показов 9276. Ответов 22
Метки (Все метки)

Ответ

Неа, оно не работает. Я могу скинуть всю программу, чтобы виднее было, как там все работает. Попробуй заполнить все клетки, чтобы ни один игрок не выиграл. Она работает, но в конце TicTacToeGame.cpp есть та некрасивая линия, которую я и хочу заменить на for луп(она отмечена комментарием //Checking for draw). Но когда и заменяю ту некрасивую линию на for луп, ничья перестает показываться.
Main.cpp:
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
#include <iostream> 
#include <string>
#include <vector>
#include <conio.h>
#include "TicTacToeGame.h"
 
using namespace std;
 
char answer;
 
int main() {
 
    TicTacToeGame ticTac;
    game:
    ticTac.clearBoard();
    do {
        do {
            ticTac.printBoard();
            ticTac.makeMove();
            ticTac.checkEnd();
            ticTac.printBoard();
        } while (ticTac.checkEnd() == 0);
        cout << " Wanna play again(Y or N)? "; cin >> answer;
        if (answer == 'y' || answer == 'Y') 
            goto  game;
        else if (answer == 'n' || answer == 'N') 
            break;
        else
            cout << "Invalid inpput. Try again!\n";
    } while (answer != 'n' || answer != 'N');
 
    return 0;
}
TicTacToeGame.h:
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
#pragma once
#include <iostream> 
#include <string>
#include <vector>
#include <conio.h>
 
using namespace std;
 
class TicTacToeGame
{
public:
    TicTacToeGame();
    void printBoard();
    void makeMove();
    int checkEnd();
    void clearBoard();
    void coutWin(string playerName);
private:
    char board[3][3];
    int x; int y;
    char turn = '1';
    int endMove = 0;
    int gameEnd = 0; int Draw = 1;
    char P1 = 'X'; char P2 = 'O';
    string P1name; string P2name;
};
TicTacToeGame.cpp:
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include "TicTacToeGame.h"
 
 
 
TicTacToeGame::TicTacToeGame(){
    system("cls");
    cout << "\n________________________________________________________________________________\n\n" << "                          Welcome to TicTacToe v0.3!\n\n";
    cout << "\n________________________________________________________________________________\n";
    cout << "\n\nPlease enter a first player's name: ";
    cin >> P1name;
    cout << "\n\n" << "Please enter a second player's name: ";
    cin >> P2name;
}
void TicTacToeGame::clearBoard() {
    turn = '1';
    endMove = 0;
    gameEnd = 0;
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            board[j][i] = ' ';
        }
        cout << endl;
    }
}
void TicTacToeGame::printBoard(){
    system("cls");
    cout << "\n________________________________________________________________________________\n";
    cout << "                                 "; cout << " 1  2  3\n";
    cout << "                                 "; cout << "=========\n";
    for (int i = 0; i < 3; i++) {
        cout << "                                 ";
        for (int j = 0; j < 3; j++) {
            cout << "|"; cout << board[j][i]; cout << "|";
        }
        cout << " " << (i+1);
        cout << endl  << "                                 " << "=========" << endl;
    }
}
void TicTacToeGame::makeMove() {
    cout << "\n--------------------------------------------------------------------------------\n" << endl;
    if (turn == '1') {
        do {
            endMove = 0;
            cout << P1name << ", plaese, enter X coordinates of your move: ";
            cin >> x;
            cout << P1name << ", please, enter Y coordinates of your move: ";
            cin >> y;
            if (board[x - 1][y - 1] == ' ') {
                board[x - 1][y - 1] = P1;
                endMove = 1;
                turn = '2';
            }
            else {
                cout << "Invalid move! Try again\n";
            }
        } while (endMove != 1);
    }
    else if (turn == '2') {
        do {
            endMove = 0;
            cout << P2name << ", plaese, enter X coordinates of your move: ";
            cin >> x;
            cout << P2name << ", plaese, enter Y coordinates of your move: ";
            cin >> y;
            if (board[x - 1][y - 1] == ' ') {
                board[x - 1][y - 1] = P2;
                endMove = 1;
                turn = '1';
            }
            else {
                cout << "Invalid move! Try again\n";
            }
        } while (endMove != 1);
    }
}
int TicTacToeGame::checkEnd() {
 
    //Check for player 1 win
    for (int i = 0; i < 3; i++) {
        if ((board[0][i] == P1) && (board[1][i] == P1) && (board[2][i] == P1)) {
            coutWin(P1name);
        }
    }
    if ((board[0][0] == P1) && (board[1][1] == P1) && (board[2][2] == P1)) {
        coutWin(P1name);
    }
    if ((board[0][2] == P1) && (board[1][1] == P1) && (board[2][0] == P1)) {
        coutWin(P1name);
    }
    for (int i = 0; i < 3; i++) {
        if ((board[i][0] == P1) && (board[i][1] == P1) && (board[i][2] == P1)) {
            coutWin(P1name);
        }
    }
 
    //Check for player 2 win
    for (int i = 0; i < 3; i++) {
        if ((board[0][i] == P2) && (board[1][i] == P2) && (board[2][i] == P2)) {
            coutWin(P2name);
        }
    }
    if ((board[0][0] == P2) && (board[1][1] == P2) && (board[2][2] == P2)) {
        coutWin(P2name);
    }
    if ((board[0][2] == P2) && (board[1][1] == P2) && (board[2][0] == P2)) {
        coutWin(P2name);
    }
    for (int i = 0; i < 3; i++) {
        if ((board[i][0] == P2) && (board[i][1] == P2) && (board[i][2] == P2)) {
            coutWin(P2name);
        }
    }
    //Checking for a draw
    if (((board[0][0]) != ' ') && ((board[0][1]) != ' ') && ((board[0][2]) != ' ') && ((board[1][0]) != ' ') && ((board[1][1]) != ' ') && ((board[1][2]) != ' ') && ((board[2][0]) != ' ') && ((board[2][1]) != ' ') && ((board[2][2]) != ' ') && Draw == 1) {
        cout << "\n--------------------------------------------------------------------------------\n" << endl;
        cout << "Draw!";
        gameEnd = 1;
    }
    return gameEnd;
}
void TicTacToeGame::coutWin(string playerName) {
    Draw = 0;
    cout << "\n--------------------------------------------------------------------------------\n" << endl;
    cout << playerName << " won!";
    gameEnd = 1;
}
Добавлено через 7 минут
Цитата Сообщение от nord_v Посмотреть сообщение
Должно работать, только индексы (i, j) ты там спутал.
Добавлено через 1 минуту
И зачем на неравенство пробелу проверяешь? Проверяй на равенство. Если есть пробел, то массив не заполнен.
Я скинул выше программу.

Вернуться к обсуждению:
Проверка каждого элемента массива C++
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2016, 22:15
Готовые ответы и решения:

После каждого четного элемента массива вставить 2 элемента с тем же значением, полученный массив отсортировать
после каждого четного элемента массива вставить 2 элемента с тем же значением.полученный масив...

Как вычесть из каждого элемента одномерного массива каждый элемент другого массива
Есть два одинаковых динамически заданных одномерных массива, число их элементов задается...

После каждого нечетного элемента массива вставить максимальный простой элемент этого же массива
ЗАДАЧА 1. В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный...

Вставить после каждого нечетного элемента массива максимальный простой элемент этого же массива
В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент...

22
01.01.2016, 22:15
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.01.2016, 22:15
Помогаю со студенческими работами здесь

Из двумерного массива [Bi,j]m,n построить массив С, выполняя деления каждого элемента массива В на min элемент в столбце
Я написал программу, идея которой должна быть верна, но при компиляции возникает ошибка на 33-й...

После каждого четного элемента массива вставить два элемента с тем же значением, после чего полученный массив отсортировать по убыванию
Ребят, помогите с задачкой новичку. После каждого четного элемента массива вставить два элемента с...

Сумма цифр каждого элемента массива
В одномерный массив с 50 элементами заносятся рандомные 3-х значные числа. Нужно вывести на экран...

Функция вывода каждого третьего элемента массива
Срочно, не могу реализовать, помогите Задание: написать функциювывода каждого третьего элемента...

0
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru