Для ввода n элементов одномерного массива, назовем его А, требуется организовать цикл, для ввода каждого i – го элемента, где i=0,1,2, …, n–1. Аналогичный цикл требуется организовать и для вывода элементов массива. На рисунке 2.2 изображена графическая схема ввода и вывода элементов массива.
/* Ввод – вывод статического массива*/
#include <stdio.h>
#define n 50;
void main()
{
int n,i;
float A[n];
puts("Введите число элементов массива ");
scanf("%d",&n);
// Ввод массива
for (i=0; i<n; i++)
{ printf("Введите число A[%2d]=",i);
scanf("%f",&A[i]);
}
// Вывод массива
puts("Массив A");
for(i=0;i<n;i++)
printf("%6.3f ",A[i]);
printf("\n");
}
Рисунок 2.2 Алгоритм и программа ввода – вывода статического массива
Ввод–вывод динамического массива осуществляется по тому же алгоритму. Из приведенного ниже примера программы ввода и вывода динамического массива видно, что отличие заключается лишь в описании массива.
/* Ввод – вывод динамического массива*/
#include <stdio.h>
void main()
{
int n,i;
puts("Введите число элементов массива a");
scanf("%d",&n);
float *a=new float[n]; // Описание динамического массива
// Ввод массива
for (i=0;i<n;i++)
{ printf("Введите число a[%2d]=",i);
scanf("%f",a+i); // или scanf("%f",&a[i]);
}
// Вывод массива
puts("Массив a");
for(i=0;i<n;i++)
printf("%.3f ",*(a+i)); // или printf("%.3f ",a[i]);
printf("\n");
delete[] a; // Освобождение памяти выделенной под массив
}
12.3.3. Перестановка двух элементов массива
Для перестановки двух элементов массива x[] с индексами kи m, необходимо использование дополнительной переменной (tmp), для хранения копии одного из элементов (рисунок 2.3 а), но можно обойтись и без использования дополнительной переменной tmp. В этом случаи алгоритм перестановки имеет следующий вид (рисунок 2.3 б).
В большинстве случаев предпочтительнее использовать первый способ, поскольку он не содержит дополнительных вычислений, что особенно важно при перестановке вещественных чисел.
tmp=x[k];
x[k]=x[m];
x[m]=tmp;
x[k]=x[k]+x[m];
x[m]=x[k]-x[m];
x[k]=x[k]-x[m];
(а)
(б)
Рисунок 2.3 Алгоритм и фрагмент программы перестановки двух элементов массива c использованием дополнительной
переменной (а) и без нее (б)
Пример 2.1
Переставить первый и последний элемент массива x[] местами. Количество элементов массива n.