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

Ошибка в коде: массиву присваиваются пробелы - C++

Восстановить пароль Регистрация
 
JoMalcolm
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 14
18.04.2014, 15:53     Ошибка в коде: массиву присваиваются пробелы #1
Господа, массиву massiv[2][6] massiv[2][7] присваиваются пробелы, хотя по условию не должны.
Помогите разобраться. Спасибо.


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
#include<iostream>
using namespace std;
 
int main()
{
    char massiv[20][50];
 
    char snake[1000]={2,4};
 
    massiv[2][6]=snake[0];
    massiv[2][7]=snake[1];
 
    cout<<massiv[2][6]<<massiv[2][7]<<endl;
 
    for(int i=0; i<20; i++)
    {   
            for(int j=0; j<50;  j++)
            {
                
                if ((i>=1 && i<20-1) && (j>0 && j<50-1))    // Не выводится массив 
                    {if(massiv[i][j]!=snake[i])   
                    massiv[i][j]=' ';}
                else
                massiv[i][j]='X';
            }
    }
 
    for(int i=0; i<20; i++)
    {       
        if (i>0) cout<<endl;
        for(int j=0; j<50;j++)
            {
            cout<<massiv[i][j];
            }
    }
 
    cout<<endl;
 
    cout<<massiv[2][6]<<massiv[2][7];
 
    system("title Эксперимент");
    system("pause>>void");
return 0;
}
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,543
Записей в блоге: 27
18.04.2014, 15:56     Ошибка в коде: массиву присваиваются пробелы #2
А что должно получиться? У меня вышла рамочка из Х-ов.
JoMalcolm
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 14
18.04.2014, 16:14  [ТС]     Ошибка в коде: массиву присваиваются пробелы #3
Дело в том, что massiv[2][6] и massiv[2][7] присвоены значения char snake[0] = 2 и snake[1] = 4. По условию: если massiv[i][j] не равен snake[i] тогда выводим пробелы?. В общем в рамочке должнs быть рожица и ромбик.
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
18.04.2014, 21:05     Ошибка в коде: массиву присваиваются пробелы #4
По условию: если massiv[i][j] не равен snake[i] тогда выводим пробелы?.
Все что с++ выполняется истинно. т.е.
C++
1
 if (massiv[i][j] != snake[i])
Если оно истинно, тогда
C++
1
 massiv[i][j] = ' ';
Как должно быть? Ошибка в коде: массиву присваиваются пробелы
JoMalcolm
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 14
18.04.2014, 21:14  [ТС]     Ошибка в коде: массиву присваиваются пробелы #5
Да, именно так

Добавлено через 26 секунд
в чем была моя ошибка?
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
18.04.2014, 21:59     Ошибка в коде: массиву присваиваются пробелы #6
JoMalcolm,
Добрый день! Честно говоря, не совсем понял задание. Я конечно не гуру, смотри, попробуем разобраться.
Покрутил и вот что у меня вышло.
Если нужно вот так: Ошибка в коде: массиву присваиваются пробелы

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
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    char massiv[20][50];
    char snake[1000] = { 2, 4 };
    for (int i = 0; i<20; i++)
    {
        for (int j = 0; j<50; j++)
        {
            if ((i >= 1 && i<20 - 1) && (j>0 && j<50 -1 ))    // Не выводится массив 
            {
                if (massiv[i][j] != snake[i])
                {
                    massiv[i][j] = ' ';
                    massiv[9][24] = snake[0];
                    massiv[9][25] = snake[1];
                }
            }
            else
            massiv[i][j] = 'X';
        }
    }
    for (int i = 0; i<20; i++)
    {
        if (i>0) cout << endl;
        for (int j = 0; j<50; j++)
        {
            cout << massiv[i][j];
        }
    }
    cout << endl;
    cout <<"\n"<<" Символы: "<< massiv[9][24] << massiv[9][25];
    system("title Эксперимент");
    system("pause>>void");
    return 0;
}
А если так то у меня вышло так:Ошибка в коде: массиву присваиваются пробелы

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
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Russian");
    char massiv[20][50];
    char snake[1000] = { 2, 4 };
    for (int i = 0; i<20; i++)
    {
        for (int j = 0; j<50; j++)
        {
            if ((i >= 1 && i<20 - 1) && (j>0 && j<50 -1 ))    // Не выводится массив 
            {
                if (massiv[i][j] != snake[i])
                {
                    massiv[i][j] = ' ';
                    massiv[2][6] = snake[0]; // по условию
                    massiv[2][7] = snake[1]; // по условию
                }
            }
            else
            massiv[i][j] = 'X';
        }
    }
    for (int i = 0; i<20; i++)
    {
        if (i>0) cout << endl;
        for (int j = 0; j<50; j++)
        {
            cout << massiv[i][j];
        }
    }
    cout << endl;
    cout << "\n" << " Символы: " << massiv[2][6] << massiv[2][7];
    system("title Эксперимент");
    system("pause>>void");
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
18.04.2014, 22:09     Ошибка в коде: массиву присваиваются пробелы #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
massiv[2][6]=snake[0];
massiv[i][j] != snake[i]
Теперь догадаетесь?
Или думаете, что, например, snake[2] не равно нулю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 22:23     Ошибка в коде: массиву присваиваются пробелы
Еще ссылки по теме:

Ошибка в коде C++
Ошибка в коде C++
C++ Ошибка в коде

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

Или воспользуйтесь поиском по форуму:
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
18.04.2014, 22:23     Ошибка в коде: массиву присваиваются пробелы #8
Да, не обратил внимание. Там 2 символа, дальше ничего нет. Все верно.

Добавлено через 8 минут
Получается нужно так:
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
#include<iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    char massiv[20][50];
    char snake[2] = { 2, 4 };
    massiv[2][6] = snake[0]; // по условию
    massiv[2][7] = snake[1]; // по условию
    //massiv[9][24] = snake[0]; // по середине рамки
    //massiv[9][25] = snake[1]; // по середине рамки
    for (int i = 0; i<20; i++)
    {
        for (int j = 0; j<50; j++)
        {
            if ((i >= 1 && i<20 - 1) && (j>0 && j<50 -1 ))    // Не выводится массив 
            {
                if (massiv[i][j] != snake[0] && massiv[i][j] != snake[1])
                {
                    massiv[i][j] = ' ';
                }
            }
            else
                massiv[i][j] = 'X';
        }
    }
    for (int i = 0; i<20; i++)
    {
        if (i>0) cout << endl;
        for (int j = 0; j<50; j++)
        {
            cout << massiv[i][j];
        }
    }
    cout << endl;
    //cout << "\n" << " Символы: " << massiv[9][24] << massiv[9][25]; // по середине рамки
    //cout << "\n" << " Символы: " << massiv[2][6] << massiv[2][7];
    system("title Эксперимент");
    system("pause>>void");
    return 0;
}
Yandex
Объявления
18.04.2014, 22:23     Ошибка в коде: массиву присваиваются пробелы
Ответ Создать тему
Опции темы

Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru