Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


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




Условно первый (с номером 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--)

Порядок выполнения работы

1. Изучить теоретические сведения.

2. Ответить на контрольные вопросы.

3. Выполнить задание.

Контрольные вопросы

1. Что такое массив?

2. Почему индекс последнего элемента массива на 1 меньше его размера?

3. Что в записи A[4]=12 является именем массива, что – индексом, а что – значением элемента?

4. Какой специальный символ используются для вывода данных в строку экрана?

5. Почему при поиске какого-либо элемента в массиве нельзя обойтись без цикла?

Задания для выполнения

Часть 1.

1. Ввести одномерный массив из n элементов. Вычислить среднее арифметическое значение элементов массива, имеющих четные отрицательные значения, или вывести сообщение об отсутствии в массиве таких значений.

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

3. Ввести массив из n целых чисел. Вычислить среднее арифметическое значение элементов, являющихся нечётными числами, или вывести сообщение «Таких значений нет».

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

5. Ввести массив из n целых чисел. Найти и вывести те элементы, которые при делении на 7 дают остаток 2 или 5, или вывести сообщение «Таких значений нет».

6. Ввести массив из n целых чисел. Найти количество и сумму тех элементов, которые делятся на 5 и не делятся на 7, или вывести сообщение «Таких значений нет».

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

8. Ввести массив из n элементов. Получить сумму и количество элементов, принадлежащих отрезку [3,17], или вывести сообщение «Таких значений нет».

9. Ввести массив А из n элементов. Найти и вывести минимальное из А0, А2, А4, … и максимальное из А1, А3, А5, …

10. Ввести массив из n элементов. Получить сумму тех членов массива, которые нечётны и положительны, или вывести сообщение «Таких значений нет».

11. Ввести массив из n целых чисел. Вычислить среднее арифметическое значение элементов, порядковые номера которых совпадают со значением этого элемента, или вывести сообщение «Таких значений нет».

12. Ввести массив из n целых чисел. Вывести те значения, которые заканчиваются заданной цифрой (ввести с клавиатуры), или вывести сообщение «Таких значений нет».

13. Ввести массив из n целых чисел. Найти сумму тех из них, которые являются квадратами некоторого заданного числа m, или вывести сообщение «Таких значений нет».

14. Ввести массив из n элементов и некоторое число P. Вывести номера тех элементов, модуль значений которых больше этого числа, или вывести сообщение «Таких значений нет».

15. Ввести массив из n элементов, в котором есть по крайней мере два отрицательных числа. Вычислить произведение и количество элементов, находящихся между первым и последним отрицательным значениями.

 

Часть 2.

1. Ввести массив из n элементов и два индекса. Поменять местами элементы, находящиеся под данными индексами. Вывести преобразованный массив.

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

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

4. Ввести массив из n элементов. Найти в нем максимальное значение. Заменить значения элементов массива путем вычитания их из максимального. Вывести преобразованный массив.

5. Ввести массив n вещественных чисел. Найти в нем минимальное значение и разделить на него каждый элемент. Вывести преобразованный массив или сообщение «min=0».

6. Ввести массив из n вещественных чисел и числа a и b. Заменить нулями все элементы, значения которых не принадлежат отрезку [ a, b ], или вывести сообщение «Таких значений нет».

7. Ввести массив из n элементов, в котором есть хотя бы одно положительное значение. Вычислить произведение и количество элементов, находящихся до первого положительного. Если положительное значение первое, то вывести сообщение «A[0]>0».

8. Ввести массив из n различных целых чисел. Поменять местами наибольшее и наименьшее значения. Вывести преобразованный массив.

9. Ввести массив из n элементов и некоторое число P. Заменить все, большие P, элементы массива этим числом. Вычислить количество таких элементов. Если оно больше нуля, вывести преобразованный массив.

10. Ввести массив из n элементов. Среди них есть равные. Найти его первое наибольшее значение и заменить его нулем. Вывести преобразованный массив.

11. Ввести массив из n элементов. Вычислить сумму модулей элементов массива, расположенных после минимального по модулю элемента.

12. Ввести массив из n вещественных чисел. Все отрицательные числа увеличить на 0.5, а все неотрицательные на 0.1. Вывести преобразованный массив.

13. Ввести массив из n вещественных чисел. Вычислить их среднее арифметическое значение и вычесть его из каждого элемента. Вывести преобразованный массив.

14. Ввести массив из n целых чисел. Заменить нулями элементы, модуль которых при делении на p даёт в остатке q. (Значения p и q ввести с клавиатуры). Вывести преобразованный массив или сообщение «Таких значений нет».

15. Ввести массив из n различных чисел. Найти в нем максимальное значение и поменять его местами со вторым элементом. Вывести преобразованный массив.

ЛАБОРАТОРНАЯ РАБОТА № 14

МНОГОМЕРНЫЕ МАССИВЫ

Цель работы: получение практических навыков в работе с двумерными массивами.





Поделиться с друзьями:


Дата добавления: 2016-10-27; Мы поможем в написании ваших работ!; просмотров: 1583 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2335 - | 2134 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.