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

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

Войти
Регистрация
Восстановить пароль
 
Анчита
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 4
#1

Вычислить суммы элементов столбцов матрицы - C++

30.12.2009, 00:23. Просмотров 318. Ответов 1
Метки нет (Все метки)

Помогите доработать программу,условие такое :Задана прямоугольная матрица В размера m*n.Вычислить суммы элементов столбцов,номера которых определяются номерами положительных элементов заданного вектора.
Вот что имеется из текста,но не правильно работает...


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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <conio.h>
 
const unsigned M=10,N=10;
 
void Inp(int A[M][N],int &a,int &b, fstream &f)
{
 char s;
 int i,j;
 a=0;
 b=N;
 i=0;
 j=0;
 while(1)
 {
  f>>s;
  if(f.eof())
  {
   break;
  }
  while((s==' ')&&(s!='\n')&&(f.eof()==0))
  {
   f>>s;
  }
  if((s=='\n')||(f.eof())||(j==b))
  {
   if(!(j==0))
   {
    if(j<=b)
    {
     b=j;
     j=0;
    }
    i++;
   }
  } else
  {
   f.seekg(-1,ios::cur);
   f>>A[i][j];
   j++;
  }
  if(i==M)
  {
   break;
  }
 }
 a=i;
}
 
void OutA(int A[M][N],int &a,int &b)
{
 int i,j;
 i=0;
 j=0;
 cout<<'\n';
 while(i<a)
 {
  while(j<b)
  {
   cout<<A[i][j]<<' ';
   j++;
  }
  j=0;
  i++;
  cout<<'\n';
 }
 cout<<'\n';
}
const unsigned V=10;
 
void vvod(int A[V],int *i,fstream &F1)
{
if (F1.bad()!=0){cout<<"oshibka";}
while (1)
{
F1>>A[*i];
if (F1.eof())break;
*i=*i+1;
if(*i==V)break;
}
}
void schet (int i,int A[],int m, fstream *F)
{
while(1)
{
if(m==i)break;
if(A[m]==i) {m++;} else {*F<<A[m]<<" "; m++;}
 }
 }
void perebor (int i,int j,int k,A[N])
i=0;
j=0;
k=0;
while (i<N)
 {if (B[i]>0)
   {
 C[j][k]=A[j][(B[i])];
 i++;
 }
 k++;
 j=0;
 }
 i++;
 
 
 
int summa (int i,int  j,int z,sum)
 {
 int sum,n,m,k[m],i,j,z;
 for (j=0;j<m);j++);
 {
 k[j]=0;
    for (i=0;i<n;i++)
 { if (p[i][j],o)
 {k[j]=1;
 }
 }
}
for (j=0;j<m;j++){
  sum=0;
   for(i=0;i<n;i++)
    if (k[j]==1)
  {
  sum=sum+A[i][j];
  z=j+1;
  }
  cout<<"Summa elementov"<<z<<"-ogo stolbca ravna"<<setw(8)
               <<sum<<"\n";
                       }
 
 
void OutB(int B[][],int &o,int &a,int &b,fstream *f)
{
 int i;
 i=0;
 if(o<(a*b/3))
 {
  while(i<o)
  {
   *f<<B[i][0]<<' '<<B[i][1]<<' '<<B[i][2]<<'\n';
   cout<<B[i][0]<<' '<<B[i][1]<<' '<<B[i][2]<<'\n';
   i++;
  }
 }
}
 
void main()
{
 clrscr();
 int A[M][N];
 int B[M][N];
 int a,b,o;
 int *i,*j;
 cout<<"Avtor - Tsariova Anna\n"
          <<"Versia - 1";
 fstream f;
 f>>resetiosflags(ios::skipws);
 f.seekg(+0,ios::beg);
 if (f.bad()!=0)
 {
  cout<<"oshibka otkritija";
 }
 f.open("in.txt",ios::in);
 fstream F;
 Inp(A,a,b,f);
 F.open("out.txt",ios::out);
 OutA(A,a,b);
 Change(A,B,a,b,o);
 OutB(B,o,a,b,&F);
 F.close();
 f.close();
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2009, 00:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вычислить суммы элементов столбцов матрицы (C++):

Вычислить суммы элементов столбцов матрицы - C++
имеется матрица. вычислить суммы элементов столбцов. для вычисления суммы одного столбца использовать функцию.

Вычислить суммы элементов столбцов матрицы, используя функцию - C++
Есть задача, вычислить суммы элементов столбцов матрицы, используя функцию. Я написала программу, которая работает для матрицы 3х3, но мою...

Сформировать суммы элементов строк матрицы и суммы элементов столбцов матрицы - C++
Добрый день господа программисты, я к вам с небольшим вопросом. Мне необходимо написать программу в которой генерируется матрица...

Отсортировать столбцы матрицы по возрастанию суммы элементов столбцов - C++
Помогите найти ошибку! Почему-то не работает.. Дано двумерный массив. Разместить его столбцы таким образом, чтобы суммы значений...

Задача на матрицы. Найти суммы элементов всех четных и нечётных строк и столбцов - C++
Т.е. иными словами нужно найти суммы элементов в каждой чётной и нечётной строке. И также в каждом чётном и нечётном столбце. Помогите,...

Создать новую матрицу из тех столбцов исходной, сумма которых больше суммы всех элементов матрицы - C++
Ввести матрицу из n*m чисел (массив и числа m, n ввести с экрана). Создать новую матрицу из тех столбцов введенной матртцы, сумма которых...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
valeriikozlov
Эксперт C++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
30.12.2009, 14:00 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Даю наводку:
У Вас в программе описаны функции:
C++
1
2
3
4
5
6
7
void Inp(int A[M][N],int &a,int &b, fstream &f)
void OutA(int A[M][N],int &a,int &b)
void vvod(int A[V],int *i,fstream &F1)
void schet (int i,int A[],int m, fstream *F)
void perebor (int i,int j,int k,A[N])
int summa (int i,int  j,int z,sum)
void OutB(int B[][],int &o,int &a,int &b,fstream *f)
больше половины которых вы даже не используете, но зато вызываете функцию
C++
1
Change(A,B,a,b,o);
которой у Вас нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2009, 14:00
Привет! Вот еще темы с ответами:

Вычислить вектор с наименьших положительных элементов столбцов матрицы - C++
Не выходит у меня =(, нужно найти вектор наименьших положительных элементов столбцов матрицы. #include &lt;iostream&gt; using namespace...

Вычислить суммы элементов по строкам матрицы - C++
/*Дана матрица B размером 54. Составить программу формирования вектора, элементы которого равны сумме элементов строк (столбцов) матрицы...

Вычислить суммы элементов по столбцам матрицы - C++
Не могу дописать, выходит только сумма всего массива. Как сделать чтоб считала по столбикам? #include &lt;iostream&gt; #include &lt;iomanip&gt; ...

Вычислить суммы элементов каждого столбца матрицы - C++
Есть задание , нужно сделать двумерный динамический массив , чтобы он считывался из файла . А вот сами условия :Дана матрица Е размером...


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

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

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