Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Поиск минимального (максимального) элемента в массиве






Условно первый (с номером 0) элемент массива считается минимальным (максимальным), затем в цикле путем сравнения находим фактическое значение.

min=A[0]; // начальное значение минимума

imin=0; // начальное значение индекса

for (i=0; i< n; i++)

if (A[i]< min) { min=A[i]; imin=i; }

printf (“min=A[%d]=%d\n”, imin, A[imin]);

Если в массиве несколько элементов имеют минимальное значение, то в imin будет запоминаться индекс первого из них. Если проверять условие A[i]< =min, то – последнего.

Для поиска максимального элемента нужно в улови заменить знак < на знак >.

Примеры решения

1. Ввести массив из n целых чисел. Вычислить сумму (произведение) и количество элементов, кратных 3 и не кратных 2, или вывести сообщение «Таких значений нет».

#include < stdio.h>

#include< conio.h>

void main()

{ const int n=10;

int a[n], s=0, k=0, i;

// s=0; k=0; - начальное значение суммы и количества

/* для произведения вместо s задать

long p=1; начальное значение произведения; long, т.к. произведение быстро растет и выходит за пределы типа int (32767) */

clrscr();

puts(" Vvedite massiv");

for (i=0; i< n; i++)

{ printf(" a[%d]=", i+1);

scanf(" %d", & a[i]);

}

for (i=0; i< n; i++)

// проверка на кратность 3 и не кратность 2 //

if (a[i]%3==0 & & a[i]%2! =0) // % - остаток от деления

{ s=s+a[i]; // накапливание суммы

// p=p*a[i]; накапливание произведения

k++; // накапливание количества

}

puts(" \nResult");

if (k= =0) puts(" net");

else

// \t – табуляция (запрограммированное число пробелов)

printf(" s=%d \t k=%d\n", s, k);

// или для произведения

// printf(" p=%ld \t k=%d\n", p, k);

// %ld – формат вывода данных типа long (длинный целый)

getch();

}

Если функция getch(); не используется, то просмотреть результат можно нажатием комбинации клавиш Alt-F5.

Проверка, что элемент массива заканчивается заданной цифрой m (ввести с клавиатуры):

puts(“Vvedite zadannoe chislo m”);

scanf(“%d”, & m);

for (i=0; i< n; i++)

if (a[i] % 10 = = m) ….. /* остаток от деления на 10 равен последней цифре числа. Если этот остаток равен m, то …*/

Проверка, что элементы массива являются квадратами некоторого заданного числа Pдесь обязательно требуется подключение файла math.h в разделе #include):

puts(“Vvedite zadannoe chislo P”);

scanf(“%d ”, & P);

for (i=0; i< n; i++)

if (sqrt(a[i]) = = P) // квадратный корень из элемента массива = P

2. В одномерном массиве из n элементов найти и вывести значение и номер первого отрицательного значения или вывести сообщение об отсутствии отрицательных чисел.

При решении данной задачи может потребоваться досрочный выход из цикла (при наличии отрицательного числа), т. е. оператор break.

#include < stdio.h>

#include< conio.h>

#include < stdlib.h>

void main()

{ const int n=10;

int a[n], i;

int f=0; // флажок указывает на успешность поиска

// изначально 0, т. к. еще ничего не найдено

// заполним массив случайными числами

randomize();

for (i=0; i< n; i++)

{ a[i]=20 – random(100);

printf (“%d\t”, a[i]);

}

printf (“\n”); // перевод курсора на новую строку экрана

// начало поиска

for (i=0; i< n; i++)

if (a[i]< 0)

{ f=1; //устанавливаем флажок в состояние «истина»

printf (“a[%d]=%d\n”, i, a[i]);

break;

}

if (f= =0) puts (“< 0 нет”);

getch();

}

Для поиска значения и номера последнего отрицательного значения массив лучше рассматривать с конца, т. е. при поиске записать for (i=n-1; i> =0; i--)






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.