Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 23:59   #1
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию Вычислить сумму элементов матрицы в заштрихованной области (функция)

Здравствуйте. Я пытался решить задачу на построение матриц через функцию. Вот что получилось.
Код:
#include <iostream> 
using namespace std; 
int wwod(int a[10][10],int *n);
int wywod(int a[10][10],int n);
int sum(int a[10][10],int n, int *sum, int j);
int n;
 
int main()
{
 int i,j;
 int sum;
 int a[10][10];
 
 wwod(a, &n);
 wywod(a, n);
 for (j=1; j<=n; j++)
 {
  sum(a, n, &sum, j);
  cout<<"  summa= "<<sum<<endl; 
 }
 
 system("pause");
 return 0;
 
}
int wwod(int a[10][10],int n)
{
    for(int i=0;i<n;i++) 
        for(int j=0;j<n;j++) 
            cin>>a[ i ][ j ];
}
int wywod(int a[10][10],int n)
{
    
 for(int i=0;i < n;i++) 
 { 
    for(int j=0;j < n;j++) 
        cout << a[ i ][ j ] << " "; 
    cout << endl; 
 }
}
int sum(int a[10][10],int n, int *sum)
{
    int *sum=0;
    for(int i=0; i < n; i++)
    for(int j=0;j < n;j++)
    if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
    *sum+=a[i][j];
    return 0;
}
Писал код сам но C++ не очень хорошо понимаю поэтому программа не компилируется, показывает 2 ошибки но может их там больше.
Решил оборотится сюда за помощью. Заранее спасибо.

Вот условие задачи.
Изображения
Тип файла: jpg Без_имени_5.jpg (55.6 Кб, 120 просмотров)
803 вне форума Ответить с цитированием
Старый 12.04.2012, 00:11   #2
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Забыл написать чтобы n вводить.
Код:
#include "stdafx.h"
#include <iostream> 
using namespace std; 
void wwod(int a[10][10],int *n);
void wywod(int a[10][10],int n);
int sum(int a[10][10],int n);
int n;

int main()
{
 
 int a[10][10];
 
 wwod(a, &n);
 wywod(a, n);
  cout<<"  summa= "<<sum(a,n)<<endl; 
 system("pause");
 return 0;

}

int wwod(int a[10][10],int n)
{
	int i,j;
		cout<<endl<<"  vvod";
	cin>>*n;
    for( i=1;i<=*n;i++) 
        for( j=1;j<=*n;j++) 
        сout << "a  "<<i<<"  "<<j<<"  ";
        cin >> a[i][j];
		cout<<endl;
    


}
int wywod(int a[10][10],int n)
{
    int i,j;
 for( i=1;i <=n;i++) 
 { 
    for(int j=1;j <=n;j++) 
        cout << a[ i ][ j ] << " "; 
    cout << endl; 
 }
}
int sum( a[10][10],int n)

{
	int i,j;
    int sum=0;
    for(int i=1; i <= n; i++)
    for(int j=1;j <= n;j++)
    if (i <=n/2. && (i >= j || (n - j - 1<= i)) || (( i >=n/2.) && (( j <=n-i-1) || ( j >= i ))) || ( i == j ))
    sum+=a[i][j];
    return 0;
}
Вроде так.

Последний раз редактировалось 803; 12.04.2012 в 01:00.
803 вне форума Ответить с цитированием
Старый 12.04.2012, 01:03   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Что за ошибки? Указывайте подробнее.
Базиля вне форума Ответить с цитированием
Старый 12.04.2012, 01:10   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
#include <iostream>
#include <stdlib.h>

using namespace std;

void inputmatrix(int **a,int n)
{
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
        {
            cout<<"a["<<i+1<<","<<j+1<<"]= ";
            cin >> a[i][j];
        }
}

void outputmatrix(int **a,int n)
{

    for(int i=0; i < n; i++)
    {
        for(int j=0; j < n; j++)
            cout << a[ i ][ j ] << " ";
        cout << endl;
    }
}

int sum(int **a,int n)
{
    int t=0;
    for(int i=0; i < n/2; i++)
        for(int j = i; j < n-i; j++)
            t+=a[i][j];
    for(int i=n/2; i < n; i++)
        for(int j = n-i-1; j < i+1; j++)
            t+=a[i][j];
    return t;
}


int main()
{
    int **a;
    int n,i;

    cout<<"Input size of matrix: ";
    cin>>n;

    a=(int **)calloc(n,sizeof(int));
    for (i=0; i<n; i++)
        a[i]=(int *)calloc(n,sizeof(int));

    inputmatrix(a,n);
    outputmatrix(a,n);
    cout<<"summa= "<<sum(a,n)<<endl;

    cin.get();
    for (i=0; i<n; i++)
        free(a[i]);
    free(a);
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 12.04.2012, 01:24   #5
803
Пользователь
 
Регистрация: 13.02.2012
Сообщений: 89
По умолчанию

Большое спасибо.
803 вне форума Ответить с цитированием
Старый 18.01.2017, 17:22   #6
dotfall
Новичок
Джуниор
 
Регистрация: 18.01.2017
Сообщений: 1
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
#include <iostream>
#include <stdlib.h>

using namespace std;

void inputmatrix(int **a,int n)
{
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
        {
            cout<<"a["<<i+1<<","<<j+1<<"]= ";
            cin >> a[i][j];
        }
}

void outputmatrix(int **a,int n)
{

    for(int i=0; i < n; i++)
    {
        for(int j=0; j < n; j++)
            cout << a[ i ][ j ] << " ";
        cout << endl;
    }
}

int sum(int **a,int n)
{
    int t=0;
    for(int i=0; i < n/2; i++)
        for(int j = i; j < n-i; j++)
            t+=a[i][j];
    for(int i=n/2; i < n; i++)
        for(int j = n-i-1; j < i+1; j++)
            t+=a[i][j];
    return t;
}


int main()
{
    int **a;
    int n,i;

    cout<<"Input size of matrix: ";
    cin>>n;

    a=(int **)calloc(n,sizeof(int));
    for (i=0; i<n; i++)
        a[i]=(int *)calloc(n,sizeof(int));

    inputmatrix(a,n);
    outputmatrix(a,n);
    cout<<"summa= "<<sum(a,n)<<endl;

    cin.get();
    for (i=0; i<n; i++)
        free(a[i]);
    free(a);
    return 0;
}
за что спасибо то? вы хоть проверяйте какие области вы посчитали ребятаааааааааааааа
dotfall вне форума Ответить с цитированием
Старый 18.01.2017, 19:39   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Ну немножко транспонированно получилось.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму элементов матрицы Rmv Паскаль, Turbo Pascal, PascalABC.NET 2 31.12.2011 11:59
вычислить сумму элементов каждой строки матрицы saint13 Помощь студентам 0 04.05.2010 20:34
найти сумму элементов матрицы в заштрихованной области denis_stell Помощь студентам 1 03.03.2010 19:45
Вычислить сумму элементов заштриховонной области двумерного массива на заданной глубине Кирилл Руммо Помощь студентам 2 19.11.2009 05:15
Сумма элементов из заштрихованной области матрицы pasha92 Помощь студентам 3 16.11.2009 18:54