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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 01:27   #1
vrtp
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 33
По умолчанию Максимальный чётный элемент

как-то давно помогали на этом форуме мне разбираться с массивами, за что огромное спасибо, вроде понял. Теперь возникло продолжение той задачи:
Код:
/*Заполнить массив значениями функции y=u*cos(r*x) для всех значений x от Z до V, взятых с шагом E.
Найти максимальный элемент массива с четным индексом и среднее арифметическое всех положительных элементов*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	int i,h;
	float a, b, m[(V-Z)/E];
	for(i=0;i<=(V-Z)/E;++i){
    a=Z+i*E;
	b=u*cos(x*r);
	m[i]=b;
	printf("m[%1.1d]=%5.4f\n", i, m[i]);
	}
	int j;
	float g, l, k, p[(V-Z)/E];
	g=0;
	for (j=0;j<=m[(V-Z)/E];++j){
         l=Z+i*E;
	 k=u*cos(0.5*r);
	 p[j]=k;// забил в память числа
	}
	for(h=0;h<=60;h+=2){// счас пытаюсь выдернуть значения четных элементов массива
	if (p[h]>g)// здесь сравниваю между собой
	g=p[h];// и если больше, то забиваю в переменную
	}
	printf("%5.4f", g);// ну и на деле распечатываю максимальную
}
Попытался написать наиболее общо, но как бы массив заполняется и все нормально, но меня интересует вторая часть. Там нужно найти максимальный элемент массива с четным индексом. Мои попытки решения в комментариях оставил, я так понимаю, я сравниваю номер массива, а не значение, которому он соответствует, поэтому прогу мне и выводит, что максимальный это 60 и его соответственно значение. Нужно как-то с адресами работать, но вот как не знаю.

Последний раз редактировалось vrtp; 06.12.2011 в 01:38.
vrtp вне форума Ответить с цитированием
Старый 07.12.2011, 16:31   #2
vrtp
Пользователь
 
Регистрация: 11.10.2011
Сообщений: 33
По умолчанию

Нашел ошибку,теперь вроде все работает, но товарищ сказал исправить этот былокод. Переписал так:
Код:
/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	int i, h, p, g,V,Z,E;
	g=0;
	float b, m[(V-Z)/E];
	for(i=0;i<=(V-Z)/E;++i){
	m[i]=u*cos(0.5*(Z+i*E));
	printf("m[%d]=%5.4f\n", i, m[i]);
	if (i % 2 != EOF)
	if	(m[i]>g)
		g=m[i];
	}
	printf("%5.4f", g);
	

	
}
Единственное я не понимаю, как сделать так, чтобы выполнилось сравнение числа из массива с моей константой и если больше,то забить поновой. Я подчеркнул, где неверно, ну то есть я могу через цикл организовать, но это не оптимально. Прошу объяснить, как сделать.

Последний раз редактировалось vrtp; 07.12.2011 в 16:34.
vrtp вне форума Ответить с цитированием
Старый 07.12.2011, 17:00   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Код:
idx = 0;                          // тут будет индекс
max = m[idx];                     // (максимум) и вовсе не 0, потому что если у тебя на промежутке 
                                  // будут только отрицательные значения, получишь неверный ответ
for (i = 0; i<=(V-Z)/E; i +=2)   // цикл с шагом два -- по четным элементам
    if (m[i] > max)
        idx = i;                  // вот оно, счастье! =)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Максимальный элемент матрицы zzz.postalman Паскаль, Turbo Pascal, PascalABC.NET 4 01.05.2011 18:50
найти первый отрицательный элемент массива имеющий чётный номер (Delphi) Vanger Помощь студентам 5 25.01.2011 11:41
Максимальный элемент в строке Nikita++ Помощь студентам 1 23.10.2010 15:46
Максимальный элемент матрицы maloy-rom Помощь студентам 1 24.12.2009 00:17
Максимальный элемент массива j_Q Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.11.2008 22:48