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

Соседи и двумерный массив из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выдает ошибку Вызвано исключение по адресу http://www.cyberforum.ru/cpp-beginners/thread1745791.html
Выдает ошибку Вызвано исключение по адресу 0x0F9F63BB (ucrtbased.dll) в ConsoleApplication2.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xDDDDDDCD. #include <iostream> #include <string> #include <cstring> using namespace std; class stroki { private: int n; char** array;
C++ Детектировать итератор произвольного доступа здравствуйте, нужно детектировать итератор произвольного доступа... это не работает: template< typename... > using void_t = void; template< typename, typename = void_t<> > struct has_random_access_iterator : std::false_type { }; template< typename Container > http://www.cyberforum.ru/cpp-beginners/thread1745786.html
Обход графа в ширину C++
Всем привет есть такая программа обход графа в глубину читает граф с файла,нужно сделать обход в ширину,помогите пожалуйста вот код: #include <fstream> #include <list> using namespace std; list<int> graf; bool m; ofstream O("graph_sem_output.txt");
C++ Gets и динамический массив
#include <iostream> #include <cstdio> using namespace std; int main() { int size; cin >> size; char * string = new char ; gets(string); cout << string << endl;
C++ Работа с большим объемом данных http://www.cyberforum.ru/cpp-beginners/thread1745740.html
Имеется загруженное изоображение с помощью opencv. Задача: вывести цвета изображения с из колличеством. Цвет задаю структурой, хранящей 3 int, RGB соответственно. Цвета считаются одинаковыми, если евклидовое расстояние между ними меньше eps. Все пиксели загоняю в map, выводится примерно 200 тыс цветов с их колличеством. Вопрос: как учесть цвета с помощью евклидового расстояния в этом map? ...
C++ Вычисление значения функции, проверка попадания точки в область на плоскости Дано вещественное число а. Для функции y=f(x), график которой приведен ниже вычислить f(а). Составить алгоритм и написать программу для решения задачи. Решить 2 задачи нужно подробнее

Показать сообщение отдельно
HomerSi
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 7
26.05.2016, 05:03     Соседи и двумерный массив из файла
Здравствуйте, не могу переделать программу под двумерный массив, чтобы она считывала с файла весь массив и считала соседей с верху, снизу и по бокам. Вот само задание "Дан текстовый файл с числами. Вычислить количество соседей с одинаковым знаком." Помогите пожалуйста доработать
Файл function.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
using namespace std;
//Функция readNumbers, принимает в качестве параметра массив а, который будет заполнять
int readNumbers(int *a)
{
    int vsego = 0;//Обнуляем счетчик элементов
    //Открываем поток чтения из файла
    fstream f;
    f.open("1.txt", ios::in);
    //До конца файла записываем числа в массив а, увеличиваем всего
    while (!f.eof())
    {
        f >> a[vsego];
        vsego ++;
    }
    //Закрываем поток, функция возвращает всего
    f.close();
    return vsego;
}
//Функция calcSosedi, принимает в качестве параметра массив а и количество элементов всего
int calcSosedi(int *a, int vsego)
{
    int sosedi = 0, i;
    cout << endl << endl;
    for (i = 0; i < vsego - 1; i++){
        if ((a[i]*a[i+1]) > 0){
       cout << "Chisla " << a[i] << " i " << a[i+1] << " imeyt odin znak\n";
            sosedi++;
        }
    }
    return sosedi;//Возвращаем подсчитанное количество соседей
}
//Функция vyvod
void vyvod (int *a, int vsego){
    cout << "V faile bili chisla:\n";
    //В цикле выводим элементы на экран
    for (int i = 0; i < vsego; i++){
        cout << a[i] << " ";
    }
}
Файл Sosedi.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include "function.h" //подключаем файл с функциями
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    //Создаем массив из 100 элементов, переменную Соседи (сколько равнозначных соседей), переменную всего (сколько всего элементов)
    int a[100];
    int sosedi;
    int vsego = readNumbers(a);
    vyvod(a, vsego); //Вызываем функцию vyvod
    sosedi = calcSosedi(a, vsego); 
    cout << "\n\nVsego " << sosedi << " par chisel imeyt odinakovii znak";
    system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru