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

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

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

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

23.05.2014, 21:39. Просмотров 239. Ответов 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; 
 
 
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 21:39     Готовая прога исправить один недочет
Посмотрите здесь:

Есть готовая прога,только нужно модифицировать. - 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) { ...

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

строки C++ почти готовая - C++
вот условие: Дан текст, состоящий из N (2&lt;=N&lt;=10) строк с максимальной длиной 80 символов. Необходимо вывести этот текст, зашифрованный...

Дерево. Готовая программа на 95% - C++
Вот само дерево. #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int todor=0; struct Node { int x; //То, что...

Готовая программа переделайте на Указатели - C++
Помогите пожалуйста!!! Через указатели #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int main( ) { int n = 3; int** f1=new int*; ...

Есть ли готовая функция для работы с массивами? - C++
Подскажите, что за функция в cpp есть, для форматирования массивов? Вот в павне можно было сделать так: char str; format(str, 256,...

Есть ли в с++ готовая функция преобразующая строку в массив? - C++
Доброго времени суток! Есть ли в с++ готовая функция преобразующая строку в массив, как в php str_split() ?

Готовая программа для любой работы с массивом - C++
Вот я решил помочь всем кому надо! Вот. Оцените работу! И вот код!

Целочисленное деление с округлением - пограмма готовая, только округление... - C++
Помогите, пожалуйста, только работать надо с тем, что имеется... Нельзя использовать новых переменных, нельзя округлять только &quot;к выводу...

Json c++ send end write - существует ли готовая библиотека - C++
Здрасте, нужна такая штука которая бы умела посылать json обьекты методом post на кукую-нить страницу и получать оттуда json обьект в...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 115
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;
Спасибо большое. помогло
Yandex
Объявления
24.05.2014, 11:10     Готовая прога исправить один недочет
Ответ Создать тему
Опции темы

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