Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 31.12.2016, 16:22   #1
BTS
Пользователь
 
Регистрация: 13.12.2014
Сообщений: 11
Репутация: 10
По умолчанию обнулить минимальный элемент массива

Реализовать шаблон класса, данными которого являются массив данных числового типа и функцию поиска минимального элемента массива, найденный элемент обнулить. Содержимое объекта вывести на экран ( используя cout << объект; ).
Как обнулить минимальный элемент??
Код:


#pragma argsused
#include <iostream>
#include "stdio.h"
#include <conio.h>
#include <locale.h>

using namespace std;

template <class t>
int getLastEqual(t arr[], int size) //функция поиска i  последнего min элемента
{
	int min = 0; // пусть первый элемент минимальный
	for (int i = 1; i < size; i++)
	{
		if (arr[i] <= arr[min])
			min = i;
	}

	return min;
}

int main(int argc, char* argv[])
{
	setlocale(LC_ALL, "Russian");
	int sz;
	cout << "Введите размер массива:" << endl;
	cin >> sz; //ввод размерности массива
	int* mas1 = new int[sz]; //создание массива типа int

	cout << "Введите элементы: " << endl;  //ввод элементов mas1
	for (int i = 0; i < sz; ++i)  //цикл считывания элементов mas1
		cin >> mas1[i];

	cout << "Введено элементов: " << sz << "\nИндекс минимального элемента: "
		<< getLastEqual(mas1, sz) << endl; //вызов функции для mas1
	
	delete[] mas1;
	system("pause");
	return 0;
}

BTS вне форума   Ответить с цитированием
Старый 31.12.2016, 17:17   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 12,383
Репутация: 2542

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Под шаблоном класса скорее всего имелась в виду не просто шаблонная функция, а класс (template <class T> class MyClass).
Alex11223 вне форума   Ответить с цитированием
Старый 31.12.2016, 18:13   #3
BTS
Пользователь
 
Регистрация: 13.12.2014
Сообщений: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Под шаблоном класса скорее всего имелась в виду не просто шаблонная функция, а класс (template <class T> class MyClass).
Это должно примерно так выглядеть?
Код:

#pragma argsused
#include <iostream>
#include "stdio.h"
#include <conio.h>
#include <locale.h>

using namespace std;

template <class T>
class Massiv
{
public:
	int sz;
	int getLastEqual(T arr[], int size);

};

template <class T>
int getLastEqual(T arr[], int size) { //функция поиска i  последнего min элемента
	int min = 0; // пусть первый элемент минимальный
	for (int i = 1; i < size; i++) {
		if (arr[i] <= arr[min])
			min = i;
	}

	return min;
}

int main(int argc, char* argv[]) {
	setlocale(LC_ALL, "Russian");
	int sz;
	cout << "Введите размер массива:" << endl;
	cin >> sz; //ввод размерности массива
	int* mas1 = new int[sz]; //создание массива типа int

	cout << "Введите элементы: " << endl;  //ввод элементов mas1
	for (int i = 0; i < sz; ++i)  //цикл считывания элементов mas1
		cin >> mas1[i];
	int ind = getLastEqual(mas1, sz);
	cout << "Введено элементов: " << sz << "\nИндекс минимального элемента: "
		<< ind << endl; //вызов функции для mas1
	mas1[ind] = 0;   // заменяем на 0
	cout << "Полученный массив: " << mas1[ind];
	delete[] mas1;
	system("pause");
	return 0;
}


Последний раз редактировалось BTS; 31.12.2016 в 18:17.
BTS вне форума   Ответить с цитированием
Старый 31.12.2016, 18:19   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 12,383
Репутация: 2542

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Массив не надо самому создавать снаружи, скорее всего нужен упрощенный вариант std::vector и т.п.
Alex11223 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1. Задан двумерный целочисленный массив Х(6,6). Найти минимальный элемент каждой строки и максимальный элемент каждого столбца массива и записать их в одномерный массив А. Greeb S Фриланс 5 15.12.2016 11:48
Записать элементы массива X, удовлетворяющие условию Х[12], подряд в массив Y =. Определить минимальный элемент массива X. полин@ Общие вопросы C/C++ 0 03.10.2016 15:37
Вычислить минимальный элемент массива(вернусь ссылку на него ), заменить этой суммой минимальный элемент mari_ly Общие вопросы C/C++ 1 30.03.2016 17:31
Минимальный элемент массива Артемкка Помощь студентам 3 19.12.2011 01:18
Минимальный элемент массива hoolywood Паскаль 3 30.05.2011 12:21




17:02.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru