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

Изменить программу (Вычислить сумму элементов в области) - C++

Восстановить пароль Регистрация
 
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 16:33     Изменить программу (Вычислить сумму элементов в области) #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
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
73
74
75
76
77
78
79
80
81
82
#include<iostream>
#include<locale>
#define N 100
 
using namespace std;
 
void inMas1(int& n,int a[N][N])
{
    cout<<"\nВвод элементов матрицы A \n";
    for (int i=0; i<n; i++)      
        for (int j=0; j<n; j++)  
        {   
            cout<<"a["<<i<<"]["<<j<<"]=";
            cin>>a[i][j];    
        }   
}
 
void outMas1(int n,int a[N][N])
{
    cout<<"\nВведена матрица A \n";
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        cout<<a[i][j]<<"\t"; 
        cout<<endl; 
    }
}
 
bool uslov (int n, int a[N][N])
//В каждом столбце все элементы на чётных местах нечётны.
{
    int k=0;
    for(int j=0; j<n; j++)      
    {
        
        for(int i=1; i<n; i+=2)
        {
            if(a[i][j]%2!=0);  
            else 
                return 0;
            }
    }
    return 1;
}
 
 
int Sum(int& n, int a[N][N])
{
    int s=0,i,j;
    for(int i=0;i<n;i++)
    {
        int j;
        if(i<(n/2)) j=n-i-1;
        else j=i;
        for(;j<n;j++)
    
}
    return s;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    int i,j,n,m,a[N][N];
    cout<<"n="; 
    cin>>n;                                             
    inMas1(n,a);
    outMas1(n,a);
    if(uslov(n,a))
    {
        cout<<"\nМатрица верна. В столбцах на четных местах все элементы нечетны."<<endl;
        
    }
    else
  
        cout<<"\nМатрица не верна. "<<endl;
    cout<< sum(n,a);
    
        system("pause");
 
    return 0;
}
Условие задачи:В каждом столбце все элементы на чётных местах нечётны.Вычислить сумму элементов в области 4-5. Сейчас рограмма вычисляет в области 2-3. Ну и вопрос, как переделать?
___8_1
_7____2
_6____3
__4_5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 16:33     Изменить программу (Вычислить сумму элементов в области)
Посмотрите здесь:

Вычислить сумму элементов матрицы в заштрихованной области C++
Вычислить сумму элементов матрицы в заштрихованной области C++
C++ Написать программу, которая создает двумерный массив со случайными числами A[N,M]. Вычислить сумму и число положительных элементов массива
Вычислить сумму элементов в области 1-2 (Не работает программа) C++
составить программу,которая создает файл, состоящий из 10 значений типа int. прочитать файл и вычислить сумму его элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 16:37     Изменить программу (Вычислить сумму элементов в области) #2
Область 4-5 - это два соседних элемента?
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 16:57  [ТС]     Изменить программу (Вычислить сумму элементов в области) #3
v.a.l.i.d, Прикрепил ресунок, серым заштрихована область где программа вычисляет сейчас, красным - где требуется сделать.
Изображения
 
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 18:46  [ТС]     Изменить программу (Вычислить сумму элементов в области) #4
Условие
Дан двухмерный массив (вектор) n целых чисел.
Ввод функцией void inMas1(int& n,int a[N]), вывод массива функцией void outMas1(int n,int a[N])
Если условие выполнено (функция типа bool), то выполнить пребразование (функция типа void) и выполнить вычисление (функция типа int)
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 19:04     Изменить программу (Вычислить сумму элементов в области) #5
Сейчас попробую сделать

Добавлено через 8 минут
вот сама функция которая проверяет условие

C++
1
2
3
4
5
6
7
8
9
10
bool uslov(int n, int a[N][N])
// true если в каждом столбце все элементы на чётных местах нечётные
{
    for (int x=0; x<N; x++)
        for (int y=0; y<N; y+=2)
            if (a[y][x] % 2 == 0)
                return false;       // условие нарушено. на четном месте четный элемент
 
    return true;                    // все OK
}
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 19:20  [ТС]     Изменить программу (Вычислить сумму элементов в области) #6
v.a.l.i.d, Тоесть надо заменить только функцию?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 19:24     Изменить программу (Вычислить сумму элементов в области) #7
да, только эту функцию заменить и все
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 19:36  [ТС]     Изменить программу (Вычислить сумму элементов в области) #8
v.a.l.i.d,
Еще вопрос по сумме, она выводится в 77 строке
C++
1
cout<< sum(n,a);
Но почему -то программа выдает ошибку, правильно ли написан код? Изначально, сумма была в функции uslov, но требуется сделать отдельно
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 19:44     Изменить программу (Вычислить сумму элементов в области) #9
Цитата Сообщение от s3423 Посмотреть сообщение
cout<< sum(n,a);
С большой буквы надо функцию писать. C++ различает регистр
C++
1
cout<< Sum(n,a);
Добавлено через 3 минуты
А сама функция Sum() неправильно написана. Она не считает сумму
Цитата Сообщение от s3423 Посмотреть сообщение
int Sum(int& n, int a[N][N])
{
* * int s=0,i,j;
* * for(int i=0;i<n;i++)
* * {
* * * * int j;
* * * * if(i<(n/2)) j=n-i-1;
* * * * else j=i;
* * * * for(;j<n;j++)
}
* * return s;
}
Всегда возвращает ноль.
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 19:46  [ТС]     Изменить программу (Вычислить сумму элементов в области) #10
v.a.l.i.d, А как сделать, чтобы считала?
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 19:53     Изменить программу (Вычислить сумму элементов в области) #11
s3423, Если честно, то я не совсем понял как должна сумма высчитываться. Матрица квадратная а рисунок круглый.
В нижней строке надо сумму найти?
s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 20:00  [ТС]     Изменить программу (Вычислить сумму элементов в области) #12
v.a.l.i.d, Рисунок неправильный, он квадратный.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 20:12     Изменить программу (Вычислить сумму элементов в области) #13
C++
1
2
3
4
5
6
7
8
9
int Sum(int n, int a[N][N])
{
    int s = 0;
    
    for (int x=1; x<N-1; x++)
        s = s + a[N-1][x];
    
    return s;
}
Вроде правильно. Считает все элементы в последней строке кроме первого и последнего

Не по теме:

Если я правильно понял задание

s3423
0 / 0 / 0
Регистрация: 22.11.2012
Сообщений: 31
18.12.2012, 20:14  [ТС]     Изменить программу (Вычислить сумму элементов в области) #14
v.a.l.i.d, Эту функцию добавить в программу?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 20:21     Изменить программу (Вычислить сумму элементов в области)
Еще ссылки по теме:

C++ Вычислить в одномерном массиве вычислить сумму элементов массива...
Динамический массив (составить программу, в которой вычислить сумму отрицательных элементов массива, расположенных под главной диагональю) C++
Найти сумму элементов заштрихованной области таблицы А размером МхN для любого N > 1 C++

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

Или воспользуйтесь поиском по форуму:
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
18.12.2012, 20:21     Изменить программу (Вычислить сумму элементов в области) #15
Не добавить а заменить. В 47 строке старую удалить а эту написать
Yandex
Объявления
18.12.2012, 20:21     Изменить программу (Вычислить сумму элементов в области)
Ответ Создать тему
Опции темы

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