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

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

Войти
Регистрация
Восстановить пароль
 
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
#1

Разные способы подключения файла, или как еще можно передать функции двумерный массив? - C++

02.05.2014, 11:58. Просмотров 266. Ответов 4
Метки нет (Все метки)

Программа считает сумму положительных элементов каждого столбца и сумму отрицательных элементов каждой строки. Все работает как нужно, но мне не нравится как подключен файл. Есть ли другой способ его подключения? И как еще можно передать функции двумерный массив?
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
using std::cout;
using std::endl;
#include <ctime>
#include <fstream>
using std::ofstream;
 
const int size=8;
ofstream file("result.txt");
 
void inputArray(int arr[size][size]);
void columnSum(int arr1[size][size], int *arr2);
void rowSum(int arr1[size][size], int *arr2);
void outputArray(int *arr);
 
int main()
{
    int arr[size][size];
    int rowArr[size];
    int columnArr[size];
    inputArray(arr);
    columnSum(arr,columnArr);
    rowSum(arr,rowArr);
    file<<"Column sum:\n";
    outputArray(columnArr);
    file<<"Row sum:\n";
    outputArray(rowArr);
    file.close();
    return 0;
}
 
void inputArray(int arr[size][size])
{
    srand(time(0));
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
            arr[i][j]=rand()%198-99;
}
 
void columnSum(int arr1[size][size], int *arr2)
{
    int sum=0;
    for (int j = 0; j < size; j++)
    {
        sum=0;
        for (int i = 0; i < size; i++)
            if(arr1[i][j]>0)
                sum+=arr1[i][j];
        arr2[j]=sum;
    }
}
 
void rowSum(int arr1[size][size], int *arr2)
{
    int sum=0;
    for (int i = 0; i < size; i++)
    {
        sum=0;
        for (int j = 0; j < size; j++)
            if(arr1[i][j]<0)
                sum+=arr1[i][j];
        arr2[i]=sum;
    }
}
 
void outputArray(int *arr)
{
    file<<"Pos  Sum\n";
    for (int i = 0; i < size; i++)
        file<<i+1<<"    "<<arr[i]<<endl;
    file<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 11:58     Разные способы подключения файла, или как еще можно передать функции двумерный массив?
Посмотрите здесь:

C++ Как передать в функцию указатель на двумерный массив заранее неизвестного размера?
C++ Как передать в функцию двумерный массив указателей на класс?
C++ Как правильно передать в функцию указатель на двумерный массив?
Как передать файл в функцию для записи/чтения (разные функции) C++
г-но код или можно ли передать метку (от гоуту) в функцию как параметр? C++
Как передать двумерный массив в функцию, которая вызывается в main? C++
C++ Передать двумерный массив функции
C++ Как можно еще создать массив объектов класса
Можно ли передать указатель на функцию как параметр другой функции? C++
Как передать в функцию двумерный динамический массив? C++
C++ Как передать массив (двумерный/одномерный вектор) в функцию C++?
C++ Как передать двумерный массив функции?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.05.2014, 16:18     Разные способы подключения файла, или как еще можно передать функции двумерный массив? #2
Цитата Сообщение от Yamko Посмотреть сообщение
но мне не нравится как подключен файл
В смысле?
Цитата Сообщение от Yamko Посмотреть сообщение
И как еще можно передать функции двумерный массив?
Чем этот не устраивает?
DmitryDidenko
4 / 4 / 2
Регистрация: 01.05.2014
Сообщений: 24
02.05.2014, 16:24     Разные способы подключения файла, или как еще можно передать функции двумерный массив? #3
Вроде же всё нормально, единственное, что можно сделать - это через класс, но будет примерно тоже самое.
Yamko
11 / 11 / 2
Регистрация: 10.03.2013
Сообщений: 104
02.05.2014, 19:41  [ТС]     Разные способы подключения файла, или как еще можно передать функции двумерный массив? #4
Цитата Сообщение от alsav22 Посмотреть сообщение
В смысле?
Интересно, можно ли как-то подключить файл в main, но чтоб запись в него делать через ф-цию?
Цитата Сообщение от alsav22 Посмотреть сообщение
Чем этот не устраивает?
Просто интересно какие еще есть способы.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.05.2014, 19:53     Разные способы подключения файла, или как еще можно передать функции двумерный массив? #5
Цитата Сообщение от Yamko Посмотреть сообщение
Интересно, можно ли как-то подключить файл в main, но чтоб запись в него делать через ф-цию?
Объявляйте в main(), в функции передавайте по ссылке:
C++
1
void outputArray(int *arr, ofstream& file);
Yandex
Объявления
02.05.2014, 19:53     Разные способы подключения файла, или как еще можно передать функции двумерный массив?
Ответ Создать тему
Опции темы

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