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

При повторении элементов в новом массиве, оставлять только первый из них - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа должна выводить координаты отрезка в границы которого входит максимальное число отрезков подаваемых на вход http://www.cyberforum.ru/cpp-beginners/thread1080171.html
#include<iostream> #include <fstream> using namespace std;
C++ Напишите функцию, которая выводит элементы в следующем порядке: Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: AN, A0, AN-1, A1, AN-2, A2, … . http://www.cyberforum.ru/cpp-beginners/thread1080163.html
Написать программу, выполняющую следующие действия со структурой: C++
Ребят помогите пожалуйста, не бросайте в беде)) Мне нужно описать структуру с именем SPORT, содержащую следующие поля: -Имя спортсмена; -страна, проводившая чемпионат; -дата соревнования; -вес в граммах, потерянный спортсменом после каждого этапа соревнования (массив из 5 элементов). Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных о спортсмене - пятиборце;...
В каждой матрице найти минимальный элемент и записать найденные значения в вектор С C++
1. Даны три матрицы М,В и А. В каждой матрице найти минимальный элемент и записать найденные значения в вектор С. 2. Написать функцию, которая складывает первый и последний столицы квадратного массива и записывает результат на место первой строки. Буду очень благодарна!
C++ Напишите функцию, которая находит корни квадратного уравнения http://www.cyberforum.ru/cpp-beginners/thread1080141.html
Напишите функцию, которая находит корни квадратного уравнения ax2+bx+c=0 и записывает результат в переменные типа double, передаваемые по ссылке. В случае отсутствия корней или ввода неправильных данных (a=0) функция выводит на экран соответствующие сообщения об этом. Также функция выводит сообщения , если корни уравнения одинаковы.
C++ Напишите функцию, которая получает две переменные целого типа: A и B Напишите функцию, которая получает две переменные целого типа: A и B. Если их значения не отрицательны, то функция присваивает каждой переменной наименьшее из этих значений, а если отрицательны, то она присваивает переменным среднее арифметическое их значений. Никак не могу , помогите) подробнее

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

При повторении элементов в новом массиве, оставлять только первый из них - C++

24.01.2014, 11:27. Просмотров 166. Ответов 0
Метки (Все метки)

Условие: Даны натуральные числа n и m и целочисленный массив размера 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
#include <iostream>
 
using namespace std;
 
int max(int *pm, int n)
{
int max, i;
 
max=*pm;
for(i=1;i<n;i++)
if(*(pm+i)>max)
max=*(pm+i);
return max;
}
int uniq_count(int *pm, int n)
{
int i, j, f, k, count;
 
count=0;
for(i=0;i<n-1;i++)
{
f=0;
for(j=i+1;j<n;j++)
if(*(pm+i)==*(pm+j))
f=1;
if(f==0)
count++;
}
 
return count;
}
 
void uniq_array(int *pm,int n,int *pun)
{
int i, j, f, k;
k=0;
for(i=0;i<n-1;i++)
{
f=0;
for(j=i+1;j<n;j++)
if(*(pm+i)==*(pm+j))
f=1;
if(f==0)
*(pun+k++)=*(pm+i);
}
}
 
int main()
{
setlocale(LC_ALL, "Russian"); 
int m, n, **pmt, *pm, *pun, i, j, k, sum;
cout << "Введите количество строк:" << endl;
cin >> m;
cout << "Введите количество столбцов:" << endl;
cin >> n;
 
pmt = new int *[m];
for(i = 0; i < m; i++)
pmt[i] = new int [n];
 
pm = new int [m];
 
cout << "Введите " << m*n << " елемента матрицы:" << endl;
for(i = 0; i < m; i++)
for(j = 0; j < n; j++)
cin >> pmt[i][j];
 
cout<<"Сформирированая матрица:"<<endl;
for(i = 0; i < m; i++)
{
for(j=0;j<n;j++)
cout<<"\t"<<pmt[i][j];
cout<<endl;
}
 
for(i=0;i<m;i++)
pm[i]=max(pmt[i],n);
 
cout << "Максимальные элементы в строках:" << endl;
for(i = 0; i < m; i++)
cout << "\t" << pm[i];
cout << endl;
 
sum = 0;
for(i = 0; i < m; i++)
sum+=pm[i];
 
cout << "Сумма максимальных элементов: "<< sum << endl;
 
k = uniq_count(pm,n);
pun = new int [k];
uniq_array(pm,n,pun);
 
cout << "Массив уникальных максимумов строк" << endl;
for(i = 0; i < k; i++)
cout << "\t" << pun[i];
cout << endl;
 
for(i = 0; i < m; i++)
delete [n] pmt[i];
delete [m] pmt;
 
delete [m] pm;
 
delete [k] pun;
 
system("pause");
return 0;
}
Вопрос правильно реализована задача или нет? Да и что скажете о коде, есть какие небудь оплошности?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru