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

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

Войти
Регистрация
Восстановить пароль
 
HomerSi
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 12
#1

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

26.05.2016, 05:03. Просмотров 103. Ответов 1
Метки нет (Все метки)

Здравствуйте, не могу переделать программу под двумерный массив, чтобы она считывала с файла весь массив и считала соседей с верху, снизу и по бокам. Вот само задание "Дан текстовый файл с числами. Вычислить количество соседей с одинаковым знаком." Помогите пожалуйста доработать
Файл 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2016, 05:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Соседи и двумерный массив из файла (C++):

Переписать массив строк из файла в двумерный массив - C++
Переписать массив строк из файла в двумерный массив типа CHAR &quot; char Map&quot; вот что получается, как сделать чтоб копировал строку в...

двумерный массив из файла. С++ - C++
Добрый день! Тема не раз обсуждалась, но я не смог найти ответ на свой вопрос, к сожалению Суть проблемы следущая - есть файл,...

Двумерный массив из файла - C++
Доброго времени суток! Подскажите как считать из файла в двумерный массив векторов vector&lt;vector&lt;string&gt;&gt; В инете и на форуме есть...

Чтение в двумерный массив из файла - C++
Есть некоторая последовательность целых чисел, которая хранится в файле. Её нужно считать и записать в двумерный массив.

Считывание из файла в двумерный массив - C++
Здравствуйте. Подскажите пожалуйста (если есть уже решение), как считать из файла в двумерный массив.

Вывод из файла txt в массив двумерный - C++
Здравствуйте, столкнулась с такой проблемой: необходимо считать файл txt и записать в двумерный массив для дальнейшей работы с ним. НО...

1
Remuless
25 / 25 / 12
Регистрация: 07.06.2015
Сообщений: 128
26.05.2016, 11:42 #2
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
int calcSosedi(int **a, int N)
{
    int sosedi = 0;
    //cout << endl << endl;
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            if (i > 0)
            {
                if (a[i][j] * a[i-1][j] > 0)//сосед сверху
                    sosedi++;
            }
            if (i < N-1)
            {
                if (a[i][j] * a[i+1][j] > 0)//сосед снизу
                    sosedi++;
            }
            if (j > 0)
            {
                if (a[i][j] * a[i][j-1] > 0)//сосед слева
                    sosedi++;
            }
            if (j < N-1)
            {
                if (a[i][j] * a[i][j+1] > 0)//сосед справа
                    sosedi++;
            }
        }
    }
    return sosedi;//Возвращаем подсчитанное количество соседей
}
//Функция vyvod
void vyvod (int **a, int N)
{
    cout << "V faile bili chisla:\n";
    //В цикле выводим элементы на экран
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
}
я бы как-то так попробовал
надеюсь остальное подправите, чтобы массив был двумерным
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2016, 11:42
Привет! Вот еще темы с ответами:

Считать текст из файла в двумерный массив - C++
Всем привет! Проблема такая. У меня есть текст 4х4 например 44rr r5r5 tttt eeee Мне нужно загнать его в двумерный массив....

Записать текст из файла в двумерный массив - C++
Добрый день. Нужно загрузить текст из файла в двумерный массив. Например, текст вот такой dghgh sfhgsghf shshghgjsfjf ...

Чтение CSV-файла в двумерный массив - C++
Есть файл вида:Нужно собрать числа в двумерный массив. Количество строк в файле неизвестно. Попробовал использовать регулярные выражения....

Добавление данных в двумерный массив из файла - C++
int tab = { { ' ', 'a', 'b', 'c', }, { 0, 1, 2, 3 }};Как данный массив заполнить тем же самым только из файла?


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

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

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