Помагите пожайлуста решить 2 задачи на С++

Ответить
nitrozevs
Сообщения: 14
Зарегистрирован: 13 дек 2009, 15:38

1.Дан двумерный массив. Определить кол-во особых элементов в масссиве. Элемент считать особым, если он в его строчке больше суммы остальных элементов строки.(В каждой строчке найти максимум, сумму строки. Если мах>(сумма строки - мах) то элемент особый).
2. В одномерном массиве найти максимальный элемент. Вставить порядковый номер максимального элемента за ним и перед ним.
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

решу за вознаграждение ICQ 395546218
если пытались решить сами то пишите что не получается на форум - поможем безвозмездно xD
Приглашаю на свой блог о программировании: pro-prof.com
nitrozevs
Сообщения: 14
Зарегистрирован: 13 дек 2009, 15:38

я то сам почти всё зделал, только для второй я вставить не могу порядковый номер,
а для первой не могу оформить "(В каждой строчке найти максимум, сумму строки. Если мах>(сумма строки - мах) то элемент особый)"
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

nitrozevs
Исходный код приводите. Во второй нашли наибольший элемент- значит и в первой найдете без проблем максимум в строчке.

Код: Выделить всё

#include <iostream>
using std::endl;
using std::cout;
using std::cin;
enum ERR{
	ERRNO=0,
	ERRSIZE=1
};
int main(){
	float *arr,max;
	int num,i,imax;

	cout<<"array size: ";
	cin>>num;
	if(num<0)
		return ERRSIZE;

	arr=new float[num];
	for(i=0;i<num;i++)
		cin>>arr[i];

	cout<<"before:"<<endl;
	for(i=0;i<num;i++)
		cout<<arr[i]<<' ';
	cout<<endl;

	imax=0,max=arr[0];
	for(i=1;i<num;i++)
		if(max<arr[i])
			max=arr[i],imax=i;

	if(imax<num-1)
		arr[imax+1]=imax;
	if(imax>0)
		arr[imax-1]=imax;

	cout<<"after:"<<endl;
	for(i=0;i<num;i++)
		cout<<arr[i]<<' ';
	cout<<endl;

	cout<<"press any key to continue: ";
	cin.get(),cin.get();
	return ERRNO;                         
}
это вторая, первой без ваших усилий небудет ))
Если наибольших элементов несколько то берется индекс только первого.
Приглашаю на свой блог о программировании: pro-prof.com
nitrozevs
Сообщения: 14
Зарегистрирован: 13 дек 2009, 15:38

я от первой только часть написал:

Код: Выделить всё

#include<iostream.h>
#include<conio.h>
#define n 3
#define m 4
main()
{clrscr();
int a[n][m],i,j,b,c,d,max;
cout<<"Bbedite MacciB"<<'\n';
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
cin>>a[i][j];};
cout<<'\n';
cout<<"iCXODHbIi MACCiB"<<'\n';
for(i=0;i<n;i++)
{for(j=0;j<m;j++)
{cout<<a[i][j]<<'\t';};
cout<<'\n';};
cout<<'\n';
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{if(j==m-1)
потом не знаю как сразу искать максимум тут же искать сумму всех элементов и выичитать из неё максимум и сравнивать(особое это число или нет)
а вторую я вобще не понел, мы решаем по простому, без всякого, хотя ладно сойдёт, НО есть одна "неувязочка" номер заменяет собой элемент перед максимумом и после максимума, а так программа просто супер, спасибо=)
Ответить