программирование 1-й семестр вариант №1 / отчёты / отчет4
.docxУО «Белорусский Государственный университет информатики и радиоэлектроники»
Отчёт
По контрольной работе №4 по теме:
«Обработка одномерных массивов»
Вариант 1
Выполнил:
Студент гр. ____
______________
Проверил:
______________
Минск 2010
Задание.
В одномерном целочисленном массиве (размер массива (не более 20) и значения его элементов вводить с клавиатуры) вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами.
Листинг 4.1
#include <iostream.h>
#include <conio.h>
int main(){
typedef int mas[20]; // определение типа массив
mas a; // определение массива А
unsigned short int iMaxA, iMinA, n, p, i, k, min, max;
cout << "Input n(<=20):\t";
cin >> n;
cout << "\nArray a:" << endl;
for (i=0; i<n; i++){
cout << "\nInput value of a[" << i+1 << "]:\t";
cin >> a[i];
}
min = max = 0;
p = 1;
for (i=0; i<n; i++){
for (k=1; k<n-1; k++){
iMaxA = (a[i] > a[k]) ? i : k;
iMinA = (a[i] < a[k]) ? i : k;
}
if (a[iMaxA] > a[max]) max = iMaxA; // были ли уже числа больше
if (a[iMinA] < a[min]) min = iMinA; // были ли уже числа меньше
}
cout << "\nMax value of array \"a\" is:\t" << a[max] << endl;
cout << "Min value of array \"a\" is:\t" << a[min] << endl;
while(max != min){
if (max > min){ // максимальный элемент расположен после минимального
p *= a[max];
max--;
}
else { // максимальный элемент перед минимальным
p *= a[max];
max++;
}
}
p *= a[min];
cout << "\nProizvedenie = " << p << endl;
cout << "\n\nPress any key to exit" << endl;
getch();
return 0;
}
Результат выполнения программы.
Используемая литература.
Б. Страуструп. Язык программирования С++