Форум программистов, компьютерный форум CyberForum.ru

Ошибка при заполнении массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разработать функцию, позволяющую поменять местами две произвольные строки матрицы http://www.cyberforum.ru/cpp-beginners/thread1062144.html
Имеется код: #include <iostream> #include <stdio.h> using namespace std; char **s = new char* , *t; int i, j, n; int main() { for(i=0; i<10; i++)
C++ Найти сумму всех положительных чисел и записать ее в начало файла Создать текстовый файл, содержащий числовую информацию. Найти сумму всех положительных чисел и записать ее в начало файла. Дополнительных массивов и файлов не использовать http://www.cyberforum.ru/cpp-beginners/thread1062124.html
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содержится в ней. Новых строк не создавать. Строку до и после преобразования вывести на экран
Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы C++
Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы. // z1.cpp: главный файл проекта. #include "stdafx.h" #include<iostream> #include <stdio.h> #include <conio.h> #include <math.h> #include <stdlib.h>
C++ Драйвер на с++ http://www.cyberforum.ru/cpp-beginners/thread1062117.html
Есть просьба, кто может, скинте исходник драйвера клавы или мыши на с++. Заранее спасибо.
C++ Разница между виртуальным и простым методом Здравствуйте! Подскажите пожалуйста... Я прочитал про виртуальные методы в классах, и, как было описано, что виртуальные методы служат для того, чтобы можно было переопределить функцию(метод) из класса наследника(допустим, есть класс one, в нём есть функция fun_1, она возвращает(просто возвращает) int 1992, и есть класс two, который является наследником класса one, в нём переопределяем функцию,... подробнее

Показать сообщение отдельно
bombat
0 / 0 / 0
Регистрация: 03.01.2014
Сообщений: 8
03.01.2014, 07:32     Ошибка при заполнении массива
Помогите пожалуйста решить проблему:
Это программа для игры в крестики нолики.
В первой функции void instruction() необходимо вывести массив [3][3]
и в задумке надо что бы массив заполнялся символами от 1-9 типом char,
|1|2|3|
|4|5|6|
|7|8|9|
но вместо этого, при запуске массив заполняется кучей цифр, и выдает что то типа:
|23412344|23412344|23412344344
|23412344|23412344|23412344344
|23412344|23412344|23412344344





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
127
128
129
130
131
132
133
#include <iostream>
#include <conio.h>
#include <random>
#include <time.h>
 
using namespace std;
 
char name1[30];
char name2[30];
char table [3][3];
bool step;
 
void instruction()
{
        cout << "\t\t*** Game ***\n\n";
    cout << "Rules:\n";
    cout << "There is a game for 2 players in a table 3x3\n";
    cout << "There is only 1 winner\n";
    cout << "There is a table:\n\n";
    int l = 0;
    for(int i (0); i < 3; i++)
    {
        for(int j(0); j < 3; j++)
        {
            cout << "| " << l+1 << '   ' ;
            table[i][j] = (49+l);
            l++;
        }
        cout << ' | ';
        cout << endl;
    }
    cout << "\nPut an number of a spot for your turn\n";
    cout << "press any key:";
    _getch();
}
 
bool input()
{
    for(int i(0); i < 3; i++)
    {
        for (int j(0); j < 3; j++)
        {
            cout << "| " << table[i][j] << '  ';
        }
        cout << ' | ';
        cout << endl;
    }
 
    cout << endl;
    if(step)
        cout << "Turn is " << name1 << " : ";
    else cout << "Turn is " << name2 << ": ";
 
    int n;
    cin >> n;
    if(n < 1 || n > 9)
        return false;
    int i,j;
 
    if(n%3 == 0) 
    {
        i = n/3-1;
        j = 2;
    }
    else
    { 
        j = n%3-1;
        i = n/3;
    }
    
    if(table[i][j] == '0' || table[i][j] == 'X')
        return false;
 
    if(step)
    {
        table[i][j] = 'X';
        step = false;
    }
    else {table[i][j] = '0'; step = true; }
    return true;
}
bool win()
{
    for(int i(0); i < 3; i++)
        if((table[i][0] == table[i][1]) && (table[i][0] == table[i][2]))
            return true;
 
        else
            if((table[0][i] == table[1][i]) && (table[0][i] == table[2][i]))
                return true;
            else if((table[0][0] == table[1][1] && table[0][0] == table[2][2]) || (table[0][2] == table[1][1] && table[0][2] == table[2][0]))
                return true;
 
    return false;
}
int main()
{
    setlocale(LC_ALL , "Russian");
 
    instruction();
    system("cls");
    
    ;
    
    cout << "Enter the name of 1-th player: ";
    cin.getline(name1,30);
    cout << "Enter the name of 2-nd player: ";
    cin. getline(name2,30);
 
    srand(time(NULL));
    if(rand() &1)
        step = true;
    else step = false;
 
    while(!win())
    {
        system("cls");
        if( !input() )
        {
            cout << "wrong number!";
            _getch();
        }
    }
 
    system("cls");
    if(step)
        cout << "The winner is " << name2 << endl;
    else cout << "The winner is" << name1 << endl;
 
 
    _getch();
    return 0;
}
Добавлено через 1 час 7 минут
нашел проблему...убрал в первом цикле все пробелы, заработало.
Тогда вопрос, почему изза пробелов появлялись левые цифры? и как это исправить, если надо добавить пробелы?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru