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

Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Редактирование строки http://www.cyberforum.ru/cpp-beginners/thread21600.html
Нужно редактировать текстовый файл таким образом: у нас есть определенное кол-во символов,которое может быть в строке(можно определить define'ом,пусть будет N) и нужно сделать так,чтобы в строке в файле(уже в получившемся) было не более N символов,причем если слово обрывается,то его нужно поместить в следующую строку без пробела(может быть в файле много пробелов). Кодировка может включать...
C++ Программа, должна выполнять дочерный процесс и передавать ему параметр через его переменные окружения Программа, должна выполнять дочерный процесс и передавать ему параметр через его переменные окружения. В качестве параметра использовать название файла, который открывается. Проверить следующие ситуации: в команде SET указано неверное название переменной окружения; в команде SET указано неверное название файла, или указан файл отсутствует. Хто разбирается помогите пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread21597.html
C++ Ширина столбцов матрицы
#include<stdio.h> #include<conio.h> #define A 3 #define B 2 int main() { int mass,i,j,a,b,s=0; clrscr(); printf("input mass\n"); for(i=0;i<A;i++)
Помогите! нужна простая программа C++
Всем привет, нуждаюсь в вашей помощи, мне нужна простая программа написанная на С++, не важно что она будет делать, главное чтобы в ней был цикл, желательно операторы if, for, switch. А также нужна еще блок-схема для этой программы. Заранее благодарен.
C++ Сумма элементов в столбцах без отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread21551.html
Помогите,пожалуйста,написать программу,которая считала бы сумму элементов в столбцах,которые не содержат отрицательных элементов. #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <complex> using namespace std; int main() {
C++ Проверка входного потока на ошибки Ребяты подскажите плз )))) сам не как не разберусь можно ли использовать failbit badbit goodbit и eofbit для проверки потока вот в этом случае с циклом while Должно проверять правильно или введена переменная(соответсвие типов) cin >> x; // объявлена как целая while(cin.fail() != 0) // произошла ошибка в потоке и failbit установился в значение 2 { cin.clear(); // очищаем... подробнее

Показать сообщение отдельно
Янус
0 / 0 / 0
Регистрация: 25.01.2009
Сообщений: 5
25.01.2009, 21:08     Заменить все элементы массива с максимальным значением на сумму цифр минимального элемента
Т.е массив содержит элементы больше 10 ?

Добавлено через 3 часа 37 минут 15 секунд
В общем решение этой проблемы мне видится так :
Код
#include "stdafx.h"
#include <iostream>
using namespace std;

#define ELEMENT(p,i,j,n,m) ((p)[i+n*j])
#define ELEMENTE(p,i,j,n) ((p)[i+n*j])
class matrix {
	int size1;//stroki
	int size2;//stolbci
	int *p;
	int mem_size;
public:
	matrix(int n,int m);
	matrix(int n);
	~matrix();
	int get(int i,int j);
	void put(int i,int j,int a);
	int max(matrix &a);
	int min(matrix &a);
	void zamena(matrix &a,int c,int d);
	//int get_size1();
	friend ostream & operator << (ostream &,const matrix &);
	friend istream & operator >> (istream &, const matrix &);
};
matrix::matrix(int n, int m)
{
	mem_size=m*n;
	p=new int [mem_size];
	if(p==NULL)
	{
		cout<<"No massiv";
		exit(1);
	}
	memset(p,0,mem_size*sizeof(int));
	size1=n;
	size2=m;
}
matrix::~matrix()
{
	delete [] p;
}
int  matrix::get(int i, int j)
{
	return ELEMENT(p,i,j,size1,size2);
}
void matrix::put(int i,int j,int a)
{
	ELEMENT(p,i,j,size1,size2)=a;
}
int matrix::max(matrix &a)
{
	int max=a.get(0,0);
	for (int i=0;i<a.size1;i++)
	{
		for(int j=0;j<a.size2;j++)
			if (a.get(i,j)>max)
			{
				max=a.get(i,j);
			}
	}
	return max;
}
int matrix::min(matrix &a)
{
	int min=a.get(0,0);
	for (int i=0;i<a.size1;i++)
	{
		for(int j=0;j<a.size2;j++)
			if (a.get(i,j)<min)
			{
				min=a.get(i,j);
			}
	}
	int min1=min/10;
	int min2=min%10;
	int minr=min1+min2;

	return minr;
	
}
void matrix::zamena(matrix &a,int c, int d)
{

     for (int i=0;i<a.size1;i++)
	{
		for(int j=0;j<a.size2;j++)
			if (a.get(i,j)==c)
			{
				a.put(i,j,d);
			}
	}
}




ostream & operator << (ostream & output,const matrix&a)
{
	for(int i=0;i<a.size1;i++)
	{
		output<<"Line"<<(i+1)<<":";
		for(int j=0;j<a.size2;j++)
			output << "\t" << ELEMENT(a.p,i,j,a.size1,a.size2);
		output<<endl;
	}
	return output;
}
istream & operator >> (istream & in,const matrix&a)
{
	for(int i=0;i<a.size1;i++)
	{
		for(int j=0;j<a.size2;j++)
		{
			cout <<"Element" << (i+1) << " " << (j+1) << ":";
			in >> ELEMENT(a.p,i,j,a.size1,a.size2);
		}
	}
	return in;
}

void main()
{
	int n,m,c,d;
    cout<<"Vvedite razmernost massiva: ";
	cout<<"Vvedite kolichestvo strok N ";
	cin>>n;
	cout<<"Vvedite kolichestvo stolbcov M ";
	cin>>m;
    matrix m1(n,m);
	cin >> m1;
	cout<<"\n";
	cout << m1;
	c=m1.max(m1);	
	d=m1.min(m1);
	cout << c <<endl;
	cout << d <<endl;
	m1.zamena(m1,c,d);
	cout<<m1;

}
Это вариант когда элементы массива больше либо равны 10 но меньше 100. Прога рабочая, если кто даст совет или замечания по коду буду рад.
 
Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru