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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
#1

Сравнение массивов - C++

19.09.2013, 23:27. Просмотров 428. Ответов 9
Метки нет (Все метки)

После заполнения динамического массива числами,в моем случае 1 и 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
#include <stdio.h>
#include <conio.h>
 
int main () {
   int w,h,d;
    printf(" Vvedite w pri uslovii w>=1\n");
    scanf ("%d",&w);
    printf(" Vvedite h pri uslovii h<=100\n");
    scanf ("%d",&h);
    int **mas;
    mas = new int *[w];
    for (int i = 0; i < w; i++)
        mas[i] = new int [h];
   printf ("Oboznach'te territoriyu gosudarstv yedinitsami i nulyami \n");
    for (int i = 0; i < w; i++) {
        for (int j = 0; j < h; j++)
         scanf ("%d", &mas[i][j]);
    }
    d=0;
   for (int i = 0; i < w; i++) {
        for (int j = 0; j < h; j++)
    {
        if (mas[i][j]==0 && mas[i][j-1]==1)
        {d++;}
        if (mas[i][j]==1 && mas [i-1][j]==0)
        {
            d++}
            
        }
    }}
 
            printf("d=%d",d);
    delete [] mas;
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнение массивов (C++):

Сравнение массивов: найти максимальное перебором массивов - C++
Добрый вечер такая проблема даны два одномерных массива A, B причем в каждом массиве записанно число по разрядно Задачи найти...

Сравнение массивов - C++
заданы два массива целых чисел с одинаковой размерности. Сравнить их соответствующие элементы и вывести на экран массив, составленный из...

Сравнение 2х массивов в С++ - C++
Ребята, помогите пожалуйста написать вот такую прогу: Запросить и считать два массива у пользователя (две последовательности целых чисел...

Сравнение массивов - C++
Добрый день! Не удается сравнить два массива q и с. Алгоритм шифрует по алгоритму CRC и необходимо расшифровать сообщение, но при...

Сравнение массивов - C++
Здраствуйте, как можно сравнить два элемента buffer и asd? Вот код: char* buffer = new char ; char sas = {&quot;123xxx&quot;}; ...

Сравнение массивов - C++
нужно сравнить весь массив из 6 элементов ,,кроме последнего,равны ли элементы массива 0 и вывести на экран равны ,или нет.

9
egor2116
340 / 371 / 42
Регистрация: 20.01.2013
Сообщений: 1,130
19.09.2013, 23:54 #2
На глаз вроде все правильно. единственное сделайте правильное удаление массива. И посмотрите на 27 строку.
0
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
19.09.2013, 23:58  [ТС] #3
egor2116, то есть удаление будет правильным
C++
1
2
3
4
5
for (int k=0;k<w;k++)
    delete [] mas[w];
 
    delete [] mas;
    mas=NULL;
0
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
19.09.2013, 23:59 #4
Sivilan, в твоём коде есть такие строки
C++
1
2
if (mas[i][j]==0 && mas[i][j-1]==1)
if (mas[i][j]==1 && mas [i-1][j]==0)
Так вот. Переменные i и j у тебя начинаются с 0. В этих строках при нулевых i или j у тебя получаются индексы равные -1. Поэтому у тебя компилятор и останавливает работу.
1
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
20.09.2013, 00:02  [ТС] #5
lipnev, рассматривал эту проблему,но когда убираю 2 строку,то работает все как надо,проблема мб в другом?
0
egor2116
340 / 371 / 42
Регистрация: 20.01.2013
Сообщений: 1,130
20.09.2013, 00:05 #6
Lipnev прав у тебя при первой же итерации цикла выход за границы массива. И ты поставил ; в 27 строке?
1
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
20.09.2013, 00:09  [ТС] #7
egor2116, поставил,сейчас попробую исключить выход из массива,разобрался,спасибо,но вопрос остался,почему,когда оставлял первое сравнение массивов все работало,а как добавил второе условие,то произошла ошибка?
0
egor2116
340 / 371 / 42
Регистрация: 20.01.2013
Сообщений: 1,130
20.09.2013, 12:58 #8
Сложно сказать.
Если было сообщение об ошибке покажи.
0
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
20.09.2013, 13:01 #9
так же будет утечка памяти. в программе два new а delete только один
0
egor2116
340 / 371 / 42
Регистрация: 20.01.2013
Сообщений: 1,130
20.09.2013, 13:10 #10
единственное сделайте правильное удаление массива.
об этом уже говорили читайте сообщения
0
20.09.2013, 13:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2013, 13:10
Привет! Вот еще темы с ответами:

Сравнение 2х массивов за 1 просмотр - C++
Доброго времени суток, уважаемые форумчане:) Будьте любезны, подскажите как решить задачку. Никак не могу понять как это можно сделать...

Сравнение числовых массивов - C++
Есть два числовых массива в одном 4 элемента в другом 5 (то есть разное количество) Как с помощью C++ можно сравнить эти массивы Нужно...

Сравнение массивов объектов - C++
Здравствуйте, в процессе выполнения задания столкнулась с проблемой - нужно сравнить два массива с объектами. На ob1== ob2 компилятор...

Сравнение 2-ух char массивов - C++
Помогите. Имеется 2 char массива. Один содержит слово вводимое пользователем, а второй это же слово, только наоборот. Необходимо сравнить...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru