Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
#1

Поиск в массиве - C++

19.02.2010, 11:35. Просмотров 544. Ответов 3
Метки нет (Все метки)

Найти наименьшую из нечетных компонент вектора и наибольшую из четных компонент. Если они имеют разные знаки, то вычислить сумму элементов вектора, а в противном случае определить произведение положительных элементов вектора.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
 
float fun(float b[], int n)
{
int i,t=1; float min,max,r;
min=b[0]; for(i=0;i<n;i+=2)if(b[i]<min)min=b[i]; 
max=b[1]; for(i=1;i<n;i+=2)if(b[i]>max)max=b[i];
if(min*max<0){r=0; for(i=0;i<n;i++)r+=b[i];} 
else {r=1; for(i=0;i<n;i++)if(b[i]>0){r*=b[i]; t=0;}if(t)r=0;} 
return r;
}      
      
main(){
float a[100]; int i,n;
printf("n="); scanf("%d",&n);
for(i=0;i<n;i++){printf("a[%d]=",i+1); scanf("%f",&a[i]);}
printf("result=%f",fun(a,n)); getchar(); }
Подскажите правильно сделал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2010, 11:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск в массиве (C++):

Поиск числа в двумерном массиве (бинарный поиск) - C++
Произвожу поиск элемента в массиве двумя способами: линейным(последовательным) поиском и бинарным(двоичным). Первый работает на ура. Второй...

поиск в массиве - C++
Надо в массиве найти положительные значения в промежутке между наибольшим и наименьшим элементом. Но в массиве наибольшие и наименьшие...

Поиск в массиве - C++
Срочно нужна помощь! Помогите, кто может... Есть массив С(100), в нем нужно посчитать кол-во последовательностей положительных чисел,...

Поиск в массиве - C++
нашел код #include &lt;iostream&gt; using namespace std; int main( void ) { int index= -1, key, i;

Поиск в массиве - C++
Надо найти в массисе чисел со значениями от 0 до 255 повторяющиеся ровно два раза числа. Второй день туплю не могу написать 100% правильно...

Поиск в массиве - C++
Дана строка. Определить порядковые номера элементов, которые мы ищем в ней, т.е. мы вбиваем символ и нам выводятся номера на которых он...

3
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
19.02.2010, 12:32 #2
Неправильно определена главная функция
Надо:
C++
1
2
3
4
int main()
{
//...
}
Добавлено через 7 минут
А так вроде все правильно
1
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
19.02.2010, 12:59 #3
C1keu, все очень мило, пара мелких "улучшений" (не по сути)
Код
min[COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]0[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR] [COLOR=#0000ff]for[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#000080]=2[/COLOR][COLOR=#008080];[/COLOR]i[COLOR=#000080]<[/COLOR]n[COLOR=#008080];[/COLOR]i[COLOR=#000040]+[/COLOR][COLOR=#000080]=[/COLOR]2[COLOR=#008000])[/COLOR][COLOR=#0000ff]if[/COLOR][COLOR=#008000]([/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#000080]<[/COLOR]min[COLOR=#008000])[/COLOR]min[COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR] 
max[COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]1[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR] [COLOR=#0000ff]for[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#000080]=3[/COLOR][COLOR=#008080];[/COLOR]i[COLOR=#000080]<[/COLOR]n[COLOR=#008080];[/COLOR]i[COLOR=#000040]+[/COLOR][COLOR=#000080]=[/COLOR]2[COLOR=#008000])[/COLOR][COLOR=#0000ff]if[/COLOR][COLOR=#008000]([/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#000080]>[/COLOR]max[COLOR=#008000])[/COLOR]max[COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR]
[COLOR=#0000ff]if[/COLOR][COLOR=#008000]([/COLOR]min[COLOR=#000040]*[/COLOR]max[COLOR=#000080]<[/COLOR]0[COLOR=#008000]){[/COLOR]r[COLOR=#000080]=[/COLOR][COLOR=#0000dd]0[/COLOR][COLOR=#008080];[/COLOR] [COLOR=#0000ff]for[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#000080]=[/COLOR][COLOR=#0000dd]0[/COLOR][COLOR=#008080];[/COLOR]i[COLOR=#000080]<[/COLOR]n[COLOR=#008080];[/COLOR]i[COLOR=#000040]++[/COLOR][COLOR=#008000])[/COLOR]r[COLOR=#000040]+[/COLOR][COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR][COLOR=#008000]}[/COLOR] 
[COLOR=#0000ff]else[/COLOR] [COLOR=#008000]{[/COLOR]r[COLOR=#000080]=[/COLOR][COLOR=#0000dd]1[/COLOR][COLOR=#008080];[/COLOR] [COLOR=#0000ff]for[/COLOR][COLOR=#008000]([/COLOR]i[COLOR=#000080]=[/COLOR][COLOR=#0000dd]0[/COLOR][COLOR=#008080];[/COLOR]i[COLOR=#000080]<[/COLOR]n[COLOR=#008080];[/COLOR]i[COLOR=#000040]++[/COLOR][COLOR=#008000])[/COLOR][COLOR=#0000ff]if[/COLOR][COLOR=#008000]([/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#000080]>[/COLOR]0[COLOR=#008000]) [/COLOR]r[COLOR=#000040]*[/COLOR][COLOR=#000080]=[/COLOR]b[COLOR=#008000][[/COLOR]i[COLOR=#008000]][/COLOR][COLOR=#008080];[/COLOR]
ИМХО, если положительных элементов вовсе нет, их произведение = 1
(так же как сумма пустого множества элементов = 0)
0 и 1 являются нейтральными элементами соответственно в аддитивной и мультипликативной
полугруппах действительных чисел

Ну и еще, для полной "отлизанности" произведения, хорошо бы при вводе проверять "n<=100"
А то кто-нибудь введет 101 - и программа давай чужую память портить...
И концов не найдешь
1
C1keu
1 / 1 / 0
Регистрация: 19.02.2010
Сообщений: 32
19.02.2010, 20:49  [ТС] #4
Спасибо за помощь =)
0
19.02.2010, 20:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2010, 20:49
Привет! Вот еще темы с ответами:

Поиск в массиве структур. - C++
Кто может,пожалуйста,гляньте. Вот мой массив: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; ...

Поиск элемента в массиве - C++
Здравствуйте! Помогите доделать программу, нужно чтобы программа в пункте 2 (L==2)искала в массиве определенную константу (любое значение...

Поиск слова в массиве - C++
Здравствуйте. Задача стоит найти слово в массиве, если слово найдется, то вывести его индекс. Если нет, то вывести &quot;Слово не найдено&quot;....

Поиск в массиве байт - C++
Как произвести поиск в массиве байт? Имеем массив байт А, в нем необходимо выполнить поиск массива В. Как я понимаю, мне необходимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru