1 / 1 / 0
Регистрация: 10.06.2012
Сообщений: 54
1

Написать функцию int Search ( double A[], int n , double x), которая находит в массиве double A[n] элемент, значение которого равно x

10.06.2012, 21:23. Показов 3053. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать функцию int Search ( double A[], int n , double x), которая находит в массиве double A[n] элемент, значение которого равно x. Функция возвращяет индекс найденного элемента или -1, если такого элемента в массиве нет. Программа получает на вход количество элементов в массиве, n затем n целых чисел- элементы массива, затем число x и должно вывести индекс найденного элемента или число -1, если данный элемент в массиве отсутствует.

Добавлено через 3 минуты
И подскажите как все это объяснить. Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2012, 21:23
Ответы с готовыми решениями:

Напишите функцию int CountMax (double A[], int n) которая подсчитывает, сколько раз в массиве встречается значение, являющееся максимальным
Напишите функцию int CountMax (double A, int n) которая подсчитывает, сколько раз в массиве...

Напишите функцию double power(double a, int n), вычисляющую значение a^n
Чем мой код отличается от библиотечной функции pow()? #include <stdio.h> double power(double a,...

Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double
Написать функцию min с переменным числом параметров, которая находит минимальное из чисел типа int...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их...

5
Лучи добра
173 / 171 / 191
Регистрация: 08.06.2012
Сообщений: 292
10.06.2012, 21:30 2
Вот как. Дело в том, что можно задать несколько одинаковых элементов, а функция передаст в главную программу только индекс последнего (можно и по-другому реализовать, но у меня ума пока маловато), по-этому основную работу по выводу проделывает функция.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
program z;
var i,n,x,k:integer;
a:array [1..10] of integer;
function search(a1:array [1..10] of integer; x1,n1:integer):integer;
     var k1,i,f:integer;
     begin
         writeln('Индексы элементов, равных ',x1,':');
         for i:=1 to n1 do
             if a1[i]=x1
                then
                    begin
                         f:=1;
                         k1:=i;
                         writeln(k1);
                    end;
         if f=0
            then
                writeln('Таких элементов нет!');
         search:=k1;
     end;
begin
     writeln('Введите кол-во элементов массива');
     readln(n);
     writeln('Ввод элементов массива');
     for i:=1 to n do
         begin
              write('a[',i,']=');
              readln(a[i]);
         end;
     writeln('Исходный массив');
     for i:=1 to n do
         write(a[i],' ');
     writeln;
     writeln('Введите число для проверки');
     readln(x);
     k:=search(a,x,n);
     writeln('Индекс последнего элемента, равного ',x,' - ',k);
end.
1
1 / 1 / 0
Регистрация: 10.06.2012
Сообщений: 54
10.06.2012, 21:37  [ТС] 3
Спасибо)
i,n,x,k - это что?
0
Лучи добра
173 / 171 / 191
Регистрация: 08.06.2012
Сообщений: 292
10.06.2012, 21:42 4
i - как и раньше, переменная-индекс для взаимодействия с элементами массива.
n - число, которым Вы задаете кол-во элементов массива.
x - число, с которым будут сравниваться элементы вектора.
k - переменная, которая запоминает индекс (i) элемента, который был равен X.
1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
10.06.2012, 21:43 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
uses crt;
const nmax=100;
type mas=array[1..nmax] of real; //тип массива
function Search(a:mas;n:integer;x:real):integer;//функция
var i,k:integer;
begin
k:=-1;//пока нет
i:=1;
while(i<=n)and(k=-1) do//пока не конец массива и не нашли число
if a[i]=x then k:=i//если нашли, запомним номер
else i:=i+1;//иначе вперед
Search:=k;//значение функции
end;
var a:mas;
    n,i:integer;
    x:real;
begin
repeat
write('Размер массива до ',nmax,' n=');
read(n);
until n in [1..nmax];
writeln('Введите элементы массива:');
for i:=1 to n do
 begin
  write('a[',i,']='); //вводим элементы массива
  read(a[i]);
 end;
clrscr;//очистим от ввода
writeln('Исходный массив:');
for i:=1 to n do
write(a[i]:0:2,' '); //выводим на экран
writeln;
write('Введите элемент для поиска x=');
read(x);
write('Номер этого элемента в массиве=',Search(a,n,x));//вызываем функцию
end.
1
1 / 1 / 0
Регистрация: 10.06.2012
Сообщений: 54
10.06.2012, 21:52  [ТС] 6
Спасибо большое)
0
10.06.2012, 21:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2012, 21:52
Помогаю со студенческими работами здесь

При умножении значения double на int и присвоения его результата на double, результат выходит неправильным
Здравствуйте. Есть такая проблема. При умножении значения double на int и присвоения его результата...

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std;...

Напишите функцию без условия if внутри цикла, которая находит в массиве A элемент, значение которого равно t
Помогите еще решить две оставшихся задачи (использовать готовые методы запрещено). 2. Линейный...

Double, int , long double
Как вычислить диапазоны типов вручную указанных в название темы?


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru