С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Готовая прога исправить один недочет - C++

23.05.2014, 21:39. Просмотров 259. Ответов 2
Метки нет (Все метки)

Суть в том, что нужно посчитать
1)произведение элементов в тех строках, которые не содержат отрицательных элементов;
2)максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
Нужно использовать шаблон. Собственно все это реализовано, но шаблон не работает для вещественного массива. Выводит нули. Скорее всего происходит преобразованиот от флоат к инту. Как это исправить. Надеюсь на вашу помощь, заранее спасибо

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
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include <ctime>
 
using namespace std;
 
static const int n=5;
 
int a[n][n];
float b[n][n];
int p = 1;
bool neotric = false;
int sum = 0;
int tmp = 0;
int i,j;
 
template < class mas, class T >
void zadan1(mas (&a)[n][n],T p);
template < class mas, class T  >
void zadan2(mas (&a)[n][n], T sum);
 
void main()
{ 
 
setlocale(0,"");
 
srand((unsigned)time(NULL));
 
//Создание и заполнение матрицы
 
cout << "Матрица1" << endl;
 
for(i=0;i < n;i++) 
{
for(j=0;j < n;j++)
{
a[i][j] = rand()% 100 - 20;
cout << a[i][j] << " ";
}
cout << endl;
} 
 
cout << endl;    
 
zadan1(a,p);
zadan2(a,sum);
 
cout << endl;
 
//sum дублируется второй раз
 
cout << "Матрица2" << endl;
 
cout.precision(2);
for(i=0;i < n;i++) 
{
for(j=0;j < n;j++)
{
b[i][j] = (float(rand()%rand()% 100 - 20)/75);
cout << b[i][j] << " ";
}
cout << endl;
} 
 
cout << endl;    
 
zadan1(b,p);
zadan2(b,sum);
 
 
 
 
system("pause");
}
 
template< class mas, class T >
void zadan1(mas (&a)[n][n], T p )//(&a)[n][n]
    {
cout << "Произведение \n"; //1)произведение элементов в тех строках, которые не содержат отрицательных элементов;
for(i=0;i < n;i++)
{
for(j=0;j < n;j++)
{
if(a[i][j] > 0)
{
neotric = true;
}
if(a[i][j] < 0)
{
neotric = false;
j = n-1;
}
}
if(neotric == false)
{
cout << i << " строка имеет отрицательные элементы\n";
neotric = false;
}
if(neotric == true)
{
cout << i << " произведение = ";
for(j=0;j < n;j++)
p = p * a[i][j];
cout << p << endl;
p = 1; 
neotric = false;
}
} 
cout << endl;       
}
 
template < class mas, class T>
void zadan2(mas (&a)[n][n], T p)
{
cout << "Сумма \n"; //2)максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. 
for(i=0;i < n;i++)
{
for(j=1;j < n;j++)
{
sum = sum + a[i][j];
i++;
}
}
for(i=1;i < n;i++)
{
for(j=0;j < n-1;j++)
{
tmp = tmp + a[i][j];
i++;
}
}
 
if(sum > tmp)
cout << "максимум : " << sum << endl;
else
cout << "максимум : " << tmp << endl; 
 
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Готовая прога исправить один недочет (C++):

Есть готовая прога,только нужно модифицировать. - C++
Есть готовая рабочая программа,но нужно сделать методы класса(типа проверить рабочий ли телефон,включить выключить его и...

Есть готовая рабочая прога. Нужно дописать пару строчек... - C++
Вот программа (полностью рабочая): #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; #define N 10 template...

Как исправить ошибку.подскажите пожалуйста. прога ломается на 79 строке - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...

Подскажите как исправить ошибку. прога ломается на 79 строке. а ошибку не выдает - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...

Не могу найти недочет ( массивы ) - C++
Есть программа,в которой решается 3 подзадачи. Возникает такой &quot;косяк&quot;...вывод инф-ии целиком зависит от введенных данных, то есть он то...

надо что то добавить!!прога просто выводит список групп,учеников и первых 3 оценок.надо чтобы прога в конце показывала по убыванию средего балла - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;string.h&gt; #include&lt;stdlib.h&gt; main() {int t,o1,o2,o3; char...

2
Tenzor
5 / 5 / 9
Регистрация: 21.05.2014
Сообщений: 29
23.05.2014, 21:52 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Попробуй в начале программы поменять тип переменных p, sum и tmp на float

C++
1
2
3
4
5
6
int a[n][n];
float b[n][n];
float p = 1;
bool neotric = false;
float sum = 0;
float tmp = 0;
1
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 127
24.05.2014, 11:10  [ТС] #3
Цитата Сообщение от Tenzor Посмотреть сообщение
int a[n][n];
float b[n][n];
float p = 1;
bool neotric = false;
float sum = 0;
float tmp = 0;
Спасибо большое. помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2014, 11:10
Привет! Вот еще темы с ответами:

Прога готовая(код Цезаря),надо сделать только чтоб шаг спрашивался только один раз). - Turbo Pascal
program Caesar; function code(toCode:string):string; var x,y,n:integer; begin writeln('shag coda'); readln(n); for x:=1 to...

Не компилируется готовая прога - Visual C++
Прога такая: #include &lt;iostream&gt; using namespace std; const int N = 4; const int M = 2; void main() {

Подскажите как исправить недочет - Delphi
Подскажите пожалуйста как исправить небольшую проблемку в программе. Суть такая, пользователь вводит в таблицу определенные данные и...

Готовая прога (необходимо редактировать данные) - FoxPro
Привет народ! Решил обратиться к Вам за помощью. Суть такова: есть готовая прога на VFP 9.0 в программе нужно изменить надписи на формах...


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

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

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