Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 22:30   #1
Dmitry73
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 13
По умолчанию минимальные элементы

Определить порядковые номера трех наименьших нечетных элементов и их произведе-ние.
я написал программу, ошибок не выдает, но работает неправильно.
помогите найти ошибку пожалуйста
Код:
#include <stdio.h>
int max(int a[],int n)
{int i=0,max=a[0];
while((a[i]!=0)&&(i<n))
{if(a[i]>max)
{max=a[i];
}
i++;
}
return max;
}
int main()
{int a[30],i=0,min1=0,min2=0,min3=0,i1=0,i2=0,i3=0,n=30,k,proizvedenie=0;
printf("vvedite massiv \n");
scanf("%d",&a[0]);
min1=a[0];
min2=max(a,n);
min3=max(a,n);
while(a[i]!=0)
{i++;
scanf("%d",&a[i]);
}
k=i;
for(i=0;i<k;i++)
{
if((a[i]<min1)&&(a[i]%2!=0))
{min1=a[i];
i1=i;
}
}
for(i=0;i<k;i++)
{
if((a[i]<min2)&&(a[i]%2!=0)&&(i!=i1))
{min2=a[i];
i2=i;
}
}
for(i=0;i>k;i++)
{if((a[i]<min3)&&(i!=i1)&&(i!=i2)&&(a[i]%2!=0))
{min3=a[i];
i3=i;
}
proizvedenie=min1*min2*min3;
}
printf("%d nomer pervogo minimuma \n",i1);
printf("%d nomer vtorogo minimuma \n",i2);
printf("%d nomer vtorogo minimuma \n",i3);
printf("%d proizvedenie= \n",proizvedenie);
}
From Stilet: А в следующий раз тему удалю за неуважение.

Последний раз редактировалось Stilet; 25.11.2010 в 09:35.
Dmitry73 вне форума Ответить с цитированием
Старый 24.11.2010, 23:05   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

используйте теги CODE. Я помещал на какой-то форум(возможно, даже, н programmersforum.ru) решение почти такой же задачи(только без проверки на четность) не более чем месяц назад. Неужели вам поиск не помог?
и используйте теги CODE для оформления кода

Код:
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
enum _ERROR_{
	ERR_SIZE = -1,
	NO_ERR = 0
};
int main(){
	const int	n=10;
	int			i,i1,i2,i3,
				*a;

	a=new int[n];
	
	for(i=0;i<n;i++)
		a[i]=i%(n/2)-n;

	for(i=0;i<n;i++)
		cout<<a[i]<<" ";
	cout<<endl;

	i1=i2=i3=-1;
	for(i=0;i<n;i++)
		if(a[i]<a[i1]||i1<0)
			i3=i2,i2=i1,i1=i;
		else
			if(a[i]<a[i2]||i2<0)
				i3=i2,i2=i;
			else
				if(a[i]<a[i3]||i3<0)
					i3=i;

	if(i1<0||i2<0||i3<0)
		return ERR_SIZE;

	cout<<i1<<i2<<i3<<endl<<a[i1]*a[i2]*a[i3]<<endl;

	delete []a;

	return NO_ERR;
}
решение не претендует на оптимальность

Последний раз редактировалось Stilet; 25.11.2010 в 09:35.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Минимальные значения строк. Delphi Delphin-666 Помощь студентам 2 14.06.2010 13:45
1.Найти в матрице первую строку, все элементы которой отрицательны 2.отсортировать элементы массива по в w0lf16 Помощь студентам 2 22.11.2009 15:47
элементы вектора realabs Общие вопросы C/C++ 7 03.10.2009 17:21
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24
Минимальные аппаратно-программные требования программы deadh5n1 Софт 1 22.12.2007 19:49