Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
Гость1111
0 / 0 / 0
Регистрация: 30.04.2008
Сообщений: 2
1

Найти сумму элементов первого и последнего столбца матрицы

04.05.2008, 09:35. Просмотров 3176. Ответов 9
Метки нет (Все метки)

Дана целочисленная квадратная матрица. Найти сумму элементов первого и последнего столбца.



Как это сделать подскажите.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2008, 09:35
Ответы с готовыми решениями:

Найти сумму элементов первого столбца без одного последнего элемента, сумму элементов второго столбца без двух последних...
Здравствуйте, форумчане! У меня вот такая вот задачка: Задан двумерный массив. Найти сумму...

Вычислить сумму элементов первого столбца матрицы А[3,4]
Вычислить сумму элементов первого столбца матрицы А. Матрица вводится с клавиатуры.

Найти сумму первого,последнего и центрального элементов массива из 20 элементов.
Дан массив из 20 чисел мо знаком. Найти сумму первого,последнего и центрального элементов массива....

Дан квадратный массив из n элементов. Найти сумму элементов последнего столбца
Дан квадратный массив из n элементов. Найти сумму элементов последнего столбца.

Найти сумму первого и последнего положительных элементов последовательности
Существует текстовый файл, заполненный случайными числами. Числа в любом диапазоне и в любом...

9
Ilidan
0 / 0 / 0
Регистрация: 08.10.2007
Сообщений: 10
04.05.2008, 14:21 2
Я конечно не знаю, что такое матрица(еще в школе учусь), но думаю что-то связаное с двумерным массивом. Вот что у меня вышло:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
void main(){
    int sum=0;
    const int n=5, m=5;
    int array[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            array[i][j]=i+j+3;
    for(i=0;i<n;i++)
        sum+=array[i][0];
    for(i=0;i<n;i++)
        sum+=array[i][m-1];
    cout<<sum<<endl;
            
}
0
NNN
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 3
16.05.2008, 08:20 3
У тебя она работает?

Вот я написал свой вариант, но она какой-то бред выдаёт.
Подскажите в чём ошибка плиз.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
int main()
{ int a[10][10],n,i,j,sum1=0,sum2=0;
  puts("Vvedite razmer matrici n:");
  fflush(stdin);
  scanf("%d",&n);
  printf("Vvedite celyu matricy razmerom (%dx%d) postro4no:\n",n,n);
  for(i=0;i<n;i++)
  {for(j=0;j<n;j++) 
      fflush(stdin);
  scanf("%d",&a[i][j]);}
  printf("Sum:\n");
    for(i=0;i<n;i++)
        {for(j=0;j<n;j++)
        sum1+=a[i][0];
        sum2+=a[i][j-1];}
    printf("sum1=%d   sum2=%d",sum1,sum2);
            getch();
}
0
Alirp
57 / 53 / 3
Регистрация: 04.05.2008
Сообщений: 272
16.05.2008, 08:51 4
Ну для начала если ты хочеш вводит размер матрицы, то и определять ее надо после введения значения, то есть определение матрицы a[][] написать после scanf("%d",&n);
в виде:
C++
1
int a [n][n];
а только после этого начать ее заполнение и суммирование элементов.
А во вторых функция суммирования должна быть такой:
C++
1
2
3
4
5
6
7
  printf("Sum:\n");
    for(i=0;i<n;i++)
        sum1+=a[i][0];
        sum2+=a[i][n-1];
            }
    printf("sum1=%d   sum2=%d",sum1,sum2);
           getch();
После этого должно все заработать.
0
16.05.2008, 08:51
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
16.05.2008, 16:02 5
работающий код:
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
#include <stdio.h>
#include <conio.h>
 
 
void main()
{
 clrscr();
 int n, i=0, j=0, sum1=0, sum2=0;           //n-размер квадратной матрицы int а
 
 puts("Vvedite razmer matrici n:");
 scanf("%d",&n);
 
 int **a = new int *[n];            //обьявление динамического массива а
 for (i=0; i<n; i++) a[i] = new int [n];
 
 
 printf("Vvedite celyu matricy razmerom (%dx%d) postro4no:\n",n,n);
 for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&a[i][j]);    //заполнение матрицы
 
 for(i=0; i<n; i++)             //суммирование
 {
   sum1+=a[i][0];
   sum2+=a[i][n-1];
 }
 
 printf("sum1=%d sum2=%d",sum1,sum2);       //вывод суммы
 
 for (i=0; i<n; i++) delete a[i]; delete []a;   //освобождние памяти, занимаемое дин. массивом а
 getch();
}
функция создает динамический массив (неопределенной длины на начало компиляции), считает и выдает ответ
если нужно чтобы динамичского выделения не было, можно вместо него создавать статический, но ограничивать возможный вводимый размер n

Добавлено через 8 минут
Alirp, на строчку int a [n][n]; компилятор заругается, что n не определено. для подобного используют динамические массивы.
1
Alirp
57 / 53 / 3
Регистрация: 04.05.2008
Сообщений: 272
16.05.2008, 16:09 6
Цитата Сообщение от MsDos Посмотреть сообщение
Alirp, на строчку int a [n][n]; компилятор заругается, что n не определено. для подобного используют динамические массивы.
Я написал то записать int a [n][n] после вызова написать после scanf("%d",&n);
Так что n уже будет определен.
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
16.05.2008, 16:25 7
гг
на момент компиляции
0
Alirp
57 / 53 / 3
Регистрация: 04.05.2008
Сообщений: 272
16.05.2008, 16:34 8
Цитата Сообщение от MsDos Посмотреть сообщение
гг
на момент компиляции
Компилятор ругаться не будет, так как n обявлен, просто не задано значение, которое и задается scanf("%d",&n);
Если хочешь можеш проверить следующий код:

int n;
scanf("%d",&n);
int a [n][n];

Я проверял и у меня компилятор не ругался.
0
MsDos
5 / 5 / 1
Регистрация: 13.05.2008
Сообщений: 96
16.05.2008, 18:06 9
нововведение?? всегда такой код не компилировался..
наверное, в новых компиляторах прописали, ато столько мороки с этими массивами >_<
мой борланд ошибку выдает.
0
Гость111
0 / 0 / 3
Регистрация: 09.03.2008
Сообщений: 12
17.05.2008, 08:42 10
Можно ещё вот так сделать, никаких динамических массивов, не надо потом освобождать память.

Всем огромное Спасибо!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
int main()
{
int n,i,j ,sum1=0,sum2=0; 
puts("Vvedite razmer matrici n:");
scanf("%d",&n);
int a[n][n]; 
printf("Vvedite celyu matricy razmerom (%dx%d) postro4no:\n",n,n);
for(i=0; i<n; i++) for(j=0; j<n; j++) scanf("%d",&a[i][j]); 
for(i=0; i<n; i++) 
{
sum1+=a[i][0];
sum2+=a[i][n-1];
}
printf("sum1=%d sum2=%d",sum1,sum2);
getch();
}
0
17.05.2008, 08:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2008, 08:42

Найти сумму элементов массива от первого до последнего нулевого
Собственно, проблема с тем, как определить этот самый последний элемент и запомнить его. Вот что...

Матрицы. Найти и распечатать сумму элементов 5-го столбца матрицы А и сумму элементов последней строки матрицы В
Даны две матрицы А(mxn)и В(m1xn1).программа находит и распечатывает сумму элементов 5-го столбца...

Двоичные файлы. Найти сумму первого, среднего и последнего элементов
В двоичном файле целого типа определить сумму его первого, среднего и последнего элементов, считая,...


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

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

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