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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2010, 16:44   #1
altair555222
 
Регистрация: 26.11.2010
Сообщений: 3
По умолчанию некорректно работает программа с массивами

в одномерном массиве, состоящем из n элементов, вычислить:
1)сумму положительных элементов массива;
2)произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами;
3)упорядочить элементы по возрастанию.

первые два задания работают, а вот с третьим проблемы. дело в том что если ввести заведомо неупорядоченную матрицу, то программа упорядочит ее как надо,но! если ввести уже упорядоченную матрицу (например:1,2,3,4,5), то программа вылетает. как сделать так, что бы результат все-таки вывелся на экран?
Код:
#include <math.h>
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main ()
{
float x[100], y[100];
float sum, max, min,b;
float pr=1;
int i,i1,i2,k,j,imax, imin;
clrscr();
printf("kol-vo elementov\n");
scanf ("%d", &k);
for (i=0; i<k; i++)
{
printf ("vvedi element massiva\n");
scanf("%f",&x[i]);
}
for (i=0; i<k; i++)
{
if (x[i]>0) sum=sum+x[i];
    }
   printf("%f\n", sum);
   max=fabs(x[0]); min=fabs(x[0]);
for (i=0; i<k; i++)
{
if (max < (fabs(x[i])))
{max = fabs(x[i]); imax = i;}
if (min > (fabs(x[i])))
{min = fabs(x[i]); imin =i;}
}
i1=(imax>imin)? imin: imax;
i2=(imax>imin)? imax: imin;
for (i=i1+1; i<i2; i++)
pr=pr*x[i];
printf ("%f\n", pr);

for (j=0; j<k; j++)
for (i=0; i<k-1;i++)
if(x[i]>x[i+1])
{b=x[i]; x[i]=x[i+1]; x[i+1]=b;}
for (i=0; i<k; i++)
cout<<x[i];
getch ();
}

Последний раз редактировалось Stilet; 26.11.2010 в 16:57.
altair555222 вне форума Ответить с цитированием
Старый 26.11.2010, 19:25   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Переменные нужно инициализировать
Код:
#include <math.h>
#include <iostream>
#include <stdio.h>
//#include <conio.h>

using namespace std;

void main ()
{
	float x[100];//, y[100];
	float sum = 0, 
		max = 0, 
		min = 0, 
		b = 0;

	float pr=1;

	int i = 0,
		i1 = 0,
		i2 = 0,
		k = 0,
		j = 0,
		imax = 0,
		imin = 0;
//	clrscr();
	printf("kol-vo elementov\n");
	scanf ("%d", &k);
	for (i=0; i<k; i++)
	{
		printf ("vvedi element massiva\n");
		scanf("%f",&x[i]);
	}
	for (i=0; i<k; i++)
	{
		if (x[i]>0) sum=sum+x[i];
	}
	printf("%f\n", sum);
	max=fabs(x[0]); min=fabs(x[0]);
	for (i=0; i<k; i++)
	{
		if (max < (fabs(x[i])))
		{max = fabs(x[i]); imax = i;}
		if (min > (fabs(x[i])))
		{min = fabs(x[i]); imin =i;}
	}
	i1=(imax>imin)? imin: imax;
	i2=(imax>imin)? imax: imin;
	for (i=i1+1; i<i2; i++)
		pr=pr*x[i];
	printf ("%f\n", pr);

	for (j=0; j<k; j++)
		for (i=0; i<k-1;i++)
			if(x[i]>x[i+1])
			{b=x[i]; x[i]=x[i+1]; x[i+1]=b;}
			for (i=0; i<k; i++)
				cout<<x[i];
			//getch ();
	system("pause");
}
psycho-coder вне форума Ответить с цитированием
Старый 29.11.2010, 20:33   #3
altair555222
 
Регистрация: 26.11.2010
Сообщений: 3
По умолчанию

к сожалению не заработало. сначало пишет что не может открыть iostream и еще куча ошибок. я изменил на iostream.h , но вывел ошибку что надо использовать с++ ....проблема значит в компиляторе, что делать?
altair555222 вне форума Ответить с цитированием
Старый 29.11.2010, 21:18   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что делать?
Убрать то что не скомпилируется, что же еще.
Вместо <iostream> поставить <stdlib.h>, и вместо cout<<x[i];
поместить printf("%f",x[i]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.11.2010, 13:50   #5
altair555222
 
Регистрация: 26.11.2010
Сообщений: 3
По умолчанию

ок, спасибо за помощь
altair555222 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно работает программа Dimakat Помощь студентам 2 07.09.2010 14:54
некорректно работает WaitForMultipleObjects bazilior Общие вопросы C/C++ 2 17.04.2010 20:15
float в ие-6 работает некорректно cratte HTML и CSS 3 17.02.2010 08:50
Некорректно работает запрос Arkuz БД в Delphi 9 20.08.2009 07:04
IdHTTP1 некорректно работает nike-p Работа с сетью в Delphi 9 23.07.2008 23:13