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

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

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

Подсчитать сумму первого и последнего столбца в матрице - C++

15.04.2012, 23:01. Просмотров 467. Ответов 2
Метки нет (Все метки)

Есть задача. Подсчитать сумму первого и последнего столбца в неопределенной матрице и с неопределенном количеством пробелов между элементами. Написать именно на C++ использовать потоки. Вот код
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
#include <sstream>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
 
int main(){
int x;
vector <int> arr(100);  
int sum1=0, sum2=0,i=0;
ifstream mat("mat");
 
while(mat.get()!=EOF){ 
mat.unget();
  for(i=0;mat.peek()!='\n';i++){
  mat >> arr[i];
  cout << arr[i] << endl;
  
}
 
sum1=arr[0];
sum2=arr[i-1];
i=0;
}
cout << "Сумма 1 -- " << sum1 << " Сумма 2 --" << sum2 << endl;
return 0;
}
Программа зацикливается, не могу понять в чем дело.

Добавлено через 1 час 35 минут
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
#include <sstream>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
 
int main(){
vector <int> arr(10);  
int sum1=0, sum2=0,i=0;
ifstream mat("mat");
  while(mat.get()!=EOF){ 
    mat.unget();
  for(i=0;mat.get()!='\n';i++){ 
    mat.unget();
  mat >> arr[i];
  //cout << arr[i] << endl;
  if(mat.peek()==EOF) break;
}
sum1+=arr[0];
sum2+=arr[i-1];
i=0;
//cout << endl;
}
 
cout << "Сумма 1 -- " << sum1 << " Сумма 2 --" << sum2 << endl;
return 0;
}
Вот более исправленный вариант который не зацикливается, но почему то считает последний столбец иногда неправильно, а иногда аварийная остановка. Помогите

Добавлено через 42 минуты
C++
1
vector <int> arr(10); - это контейнер обладающий всеми свойствами обычного массива, просто с ним удобнее работать как с динамическим и потом я его хочу использовать для расширения памяти. Не обращайте на этого особого внимания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 23:01     Подсчитать сумму первого и последнего столбца в матрице
Посмотрите здесь:

Найти сумму элементов первого и последнего столбца матрицы C++
Дан двумерный массив С[10][10], поменять местами элементы первого и последнего столбца, второго и предпоследнего и так далее C++
Найти сумму элементов массива от первого до последнего нулевого C++
C++ Найти сумму первого и последнего элемента текс. файла.
Списки. Найти сумму первого и последнего элемента C++
Найти сумму первого и последнего элемента списка C++
В матрице найти наибольший и наименьший элементы и поместить их на место первого и последнего элемента матрицы соответственно (Pascal -> C++) C++
C++ Как присвоить нужному элементу в матрице значение первого или последнего элемента?
C++ Если в матрице есть нули, то заменить их суммой max и min последнего столбца
C++ В прямоугольной матрице заменить элементы каждого столбца на сумму элементов этого столбца
В матрице перемножить элементы первого и второго столбца C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
15.04.2012, 23:17     Подсчитать сумму первого и последнего столбца в матрице #2
mat >> arr[i];
вы не можете так делать, если выделили вектор только на 10 эелементов!
либо используйте arr.push_back, либо резервируйте больше памяти( лучше по ходу выполнеия).
Alexex
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 23
15.04.2012, 23:31  [ТС]     Подсчитать сумму первого и последнего столбца в матрице #3
Цитата Сообщение от antoha398 Посмотреть сообщение
mat >> arr[i];
вы не можете так делать, если выделили вектор только на 10 эелементов!
либо используйте arr.push_back, либо резервируйте больше памяти( лучше по ходу выполнеия).
Не в этом суть. Суть в том что неправильно считает. Оптимизацию и динамическое выделение памяти я потом сделаю.
Yandex
Объявления
15.04.2012, 23:31     Подсчитать сумму первого и последнего столбца в матрице
Ответ Создать тему
Опции темы

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