Программирование циклических процессов
С использованием одномерных массивов и строк
Цель работы:
Изучить правила работы с одномерными массивами, а также особенности работы со строковыми объектами как одномерными символьными массивами.
Краткие теоретические сведения
Массив – конечномерная последовательность данных одного типа. Массив – объект сложного типа. Каждый элемент массива определяется именем массива и индексом (целое число), по которому к элементу массива производится доступ. Рассмотрим одномерные массивы. Индексы массивов в языке С начинаются с 0. В программе одномерный массив объявляется следующим образом:
<Тип> <имя массива>[размер];
где размер – количество элементов одномерного массива.
Размер массива может задаваться константой или константным выражением. Нельзя задавать массив переменного размера, для этого существует отдельный механизм – динамическое выделение памяти.
Пример объявления массива целого типа:
int a [5];
в массиве а первый элемент а [0], второй – а [1], …, пятый - а [4]. В языке С не проверяется выход индекса за пределы массива. Корректность использования индексов элементов массива должен контролировать программист.
Пример работы с одномерным массивом
В массиве целых чисел найти индекс и значение максимального элемента и переставить его с первым элементом. Программа также должна подсчитать количество положительных и отрицательных элементов данного массива.
Текст программы может быть следующим:
#include <stdio.h>
#include <conio.h>
void main(void)
{ // Объявление с инициализацией,
int a[4]={-1,-20,4,100}; // индексы принимают значения от 0 до 3
int i,index,max,kp=0,ko=0,zam,n=4;
clrscr();
puts("\n Исходный массив ");
for (i=0; i<n; i++)
printf("%d ",a[i]); // Вывод элементов исходного массива
max=a[0];
for (i=1; i<n; i++)
{
if (a[i]>max)
{
max=a[i]; index=i; }
}
zam=a[0];a[0]=a[index];a[index]=zam;
for (i=0;i<n;i++)
{
if (a[i]<0) ko++;
else kp++;
}
puts("\n Результаты работы программы ");
for (i=0; i<n; i++)
printf("%d ",a[i]); // Вывод элементов массива
printf("\n положительных элементов: %d \n",kp);
printf("\n отрицательных элементов: %d \n\n Press any key...",ko);
getch();
}