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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упражнение по многопоточному программированию http://www.cyberforum.ru/cpp-beginners/thread1186252.html
Добрый день уважаемые форумчане. Понял что имею большую дыру в познаниях в многопоточном программировании, нашел упражения и потихоньку делаю, если кого не затруднит прокоментируйте следующий код - имеет ли он право на жизнь /*15. Синхронизированный доступ к списку Родительская нить программы должна считывать вводимые пользователем строки и помещать их в начало связанного списка. Строки...
C++ Отступы в файле Есть программа, туда вводится информация о работниках: имя, фамилия, должность, зарплата. Эти данные отображаются в консоли и записываются в файл, но в файл всё записывается одной строкой, то есть как на картинке. http://www.cyberforum.ru/attachment.php?attachmentid=402734&stc=1&d=1400865117 Как это исправить? Нужно что бы всё выводилось в столбик. Вот код программы. http://www.cyberforum.ru/cpp-beginners/thread1186250.html
C++ Программирование с использованием файлов: список студентов
Помогите, пожалуйста, решить задачу Написать программу формирования файла, содержащего данные из задания соответствующего номеру по списку. В программе предусмотреть сохранение вводимых данных в файл и возможность чтения из ранее сохраненного файла. Вывести результаты на экран и в текстовой файл. Для получения места в общежитии формируется список студентов, который включает ФИО студента,...
Перегрузка операторов C++
Помогите, пожалуйста, решить задачу При создании собственных типов данных с помощью классов наиболее общей операцией является проверка на равенство экземпляров класса. Используя перегрузку, необходимо перегрузить операторы равенства (==), неравенства (!=). Необходимо добавить новый оператор в класс String, который проверяет, равны ли два экземпляров класса String, т.е. проверить, содержат ли...
C++ Класс "Список товаров" http://www.cyberforum.ru/cpp-beginners/thread1186240.html
Создать класс, в котором определены поля и методы класса: конструктор с параметрами, конструктор без параметров, ввод и вывод данных. Реализовать два варианта ввода данных: программно и с клавиатуры. Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад.
C++ Сформировать текстовый файл f1. Определить количество повторений каждого слова Доброго времени суток! Вот есть шаблон кода. Функция work и должна определять количество повторений каждого слова. Как это можно реализовать? Заранее огромное спасибо. #include "stdafx.h" #include<iostream> #include<conio.h> #include<stdio.h> #include<string.h> #include<process.h> #include<ctype.h> using namespace std; подробнее

Показать сообщение отдельно
aksdaqg
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 115

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

23.05.2014, 21:39. Просмотров 244. Ответов 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; 
 
 
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru