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

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

Восстановить пароль Регистрация
 
mr_free
 Аватар для mr_free
69 / 3 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
04.11.2012, 23:11     Ошибка в коде! #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
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
int main()
{
    int n,k,ii,jj;
    cin>>n;
    int arr[n][n];
    for (int i=0; i<n; i++)
        {for (int j=0; j<n; j++)
            cin>>arr[i][j];
        }
    k=0;
    for (int i =0; i<n; i++)
        for (int j=0; j<n; j++)
        {
            if (arr[i][j] =1)
            {
                k++;
                ii=i;
                jj=j;
                while (arr[i][jj]=1) {jj++;}
                while (arr[ii][j]=1) {ii++;}
                for (i=i; i<ii; i++)
                    for (j=j; j<jj; j++)
                    {
                        arr[i][j]=0;
                    }
            }
        }
    cout<<k<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 23:11     Ошибка в коде!
Посмотрите здесь:

C++ Ошибка в коде.
C++ ошибка в коде
C++ Ошибка в коде
Ошибка в коде C++
C++ Ошибка в коде
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
04.11.2012, 23:12     Ошибка в коде! #2
Цитата Сообщение от mr_free Посмотреть сообщение
C++
1
2
3
4
5
            if (arr[i][j] =1)
            ..
                        while (arr[i][jj]=1) {jj++;}
                while (arr[ii][j]=1) {ii++;}
}
должно быть двойное равно, для сравнения
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
04.11.2012, 23:16     Ошибка в коде! #3
C++
1
2
                for (i=i; i<ii; i++)
                    for (j=j; j<jj; j++)
странная конструкция... если вы действительно хотели, чтобы 2 внешних цикла на следующей итерации начинали выполнение с ii, можно сделать так:
C++
1
2
                for ( ; i<ii; i++)
                    for ( ; j<jj; j++)
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
04.11.2012, 23:18     Ошибка в коде! #4
Цитата Сообщение от mr_free Посмотреть сообщение
for (i=i; i<ii; i++)
for (j=j; j<jj; j++)
Здесь i=i и j=j, чтобы наверняка значение сохранилось?
mr_free
 Аватар для mr_free
69 / 3 / 0
Регистрация: 08.08.2012
Сообщений: 223
Записей в блоге: 1
05.11.2012, 23:27  [ТС]     Ошибка в коде! #5
Цитата Сообщение от I.M. Посмотреть сообщение
Здесь i=i и j=j, чтобы наверняка значение сохранилось?
Да, действительно так) Странно компилятор должен был ругаться на отсутствие равно, это ж ошибка синтаксиса Но дело наверное не в этом!

Добавлено через 4 минуты
ДА, как я и думал дело было не в отсутствии "==", а в чем-то другом. Увы, не знаю в чем, подскажите, пожалуйста.

Добавлено через 2 минуты
ДА, как я и думал дело было не в отсутствии "==" в цикле, а в чем-то другом. Подскажите, пожалуйста, в чем дело, программа прекращает работу в любом случае!?

Добавлено через 3 минуты
Блин, разобрался, простите дело было в компиляторе. Только что решил проверить работу, и вот даже Хелло Ворд прекращает работу. Не знаю, сейчас переустановлю!
Yandex
Объявления
05.11.2012, 23:27     Ошибка в коде!
Ответ Создать тему
Опции темы

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