Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
87
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
      1. Вычисление суммы и произведения элементов массива

Для накопления сумм и произведений некоторых элементов используются переменные, которые следует инициализировать значениями 0 и 1 соответственно. Если такую инициализацию не выполнить, то в этих переменных будут находиться случайные значения («мусор»), что не позволит получить верные результаты.

ПРИМЕР 33:

Задание

Составить программу вычисления суммы и произведения положительных элементов целочисленного массива a[N], заполненного случайными числами из диапазона [–8, 12]. Значение N задать директивой # define.

Решение

# include<stdio.h>

# include<conio.h>

# include<stdlib.h>

# include<time.h>

# define N 5

# define P printf

void main ( )

{ int s = 0, p = 1, i, a[N]; randomize();

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

{ a[i]= -8 + random(21);

P(" a[%d]=%d" , i, a[i]);

if(a[i]>0){

s + = a[i];

p* = a[i];

}

}

P("\n Сумма положительных\

\ элементов=%d ", s);

P("\n Произведение положительных\

\ элементов=%d ", p);

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/ /*14*/ /*15*/

/*16*/

/*17*/

/*18*/

/*19*/ /*20*/

      1. Поиск максимального элемента массива и его номера

ПРИМЕР 34:

Задание

Составить программу, которая заполняет целочисленный массив a[20] случайными числами из диапазона [–25, 25], находит и выводит на экран наибольший элемент этого массива и его номер. Если наибольшее значение встречается в массиве несколько раз, то вывести на экран номера всех таких элементов.

Решение

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<time.h>

#define N 20

#define P printf

void main( )

{ int a[N] , i, kol=0, max = -30;

randomize();

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

{ a[i]= –25 + random(51);

P(" a[%d] = %d", i, a[i]);

if(a[i] > max) max = a[i];

}

P(“\n Наибольшее значение равно %d”, max);

P(“ \n для элементов с индексами:”);

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

if(a[i] == max) { printf(“ %d”, i);

kol++;

}

P(“\n Это значение встретилось в\

\ массиве %d раз”, kol);

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*//*12*//*13*//*14*//*15*/

/*16*//*17*//*18*//*19*//*20*//*21*/

/*22*//*23*/

Замечание

В решении данной задачи в качестве начального значения переменной max можно взять любое значение, не превосходящее –25, например, –30 (строка 11). В общем случае, когда диапазон, которому принадлежат значения элементов массива, неизвестен, в качестве начального значения переменной max можно взять любой из элементов массива а.

      1. Вычисление среднего арифметического

ПРИМЕР 35:

Задание

Составить программу, которая заполняет массив действительных чисел a[10] значениями, введёнными с клавиатуры, и выводит на экран среднее арифметическое положительных элементов этого массива.

Решение

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#define N 10

#define P printf

void main( )

{ float sr = 0;

int i, a[N] ,kol = 0;

P(“\n Ввод исходного массива целых\

\ чисел:\n”);

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

{ P(“a[%d] =”,i); scanf(“%d”,&a[i]);

if(a[i]>0){sr+=a[i]; kol++;}

}

if(kol==0) P(“\n положительных\

\ элементов нет”);

else P(“\n среднее арифметическое\

\ положит. элементов: = %f”,sr/kol);

P(“\n Нажмите любую клавишу”);

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/

/*10*/ /*11*/ /*12*/ /*13*/ /*14*/

/*15*/

/*16*/ /*17*/ /*18*/

Замечание

В решении данной задачи переменная sr объявлена дробного (вещественного) типа. Она используется для суммирования элементов массива. Объявлять ее целочисленной нельзя, так как при делении целого числа на целое (kol) получим неверное значение (оно не будет дробным).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]