Вывод массива в си: Вывод массива в Си

Содержание

создание, объявление и инициализация и вывод на примерах

В этом уроке мы научимся работать с массивами. Мы научимся объявлять, инициализировать и получать доступ к элементам массива в программировании на C++ с помощью примеров. В С++ массив – это переменная, которая может хранить несколько значений одного типа.

Например: Предположим, в классе 27 учеников, и нам нужно сохранить оценки всех их. Вместо того, чтобы создавать 27 отдельных переменных, мы можем просто создать массив:

double grade[27];

Здесь grade – это массив, который может содержать не более 27 элементов типа double.

В C++ размер и тип массивов не могут быть изменены после его объявления.

Объявление массива

dataType arrayName[arraySize];

Например:

int x[6];

Здесь:

  • int – тип сохраняемого элемента;
  • x – имя массива;
  • 6 – размер массива.

Доступ к элементам в массиве

В C++ каждый элемент массива связан с числом. Число известно, как индекс массива. Мы можем получить доступ к элементам массива, используя эти индексы.

// syntax to access array elements
array[index];

Рассмотрим массив x, который мы видели выше.

Несколько вещей, которые следует помнить:

  • Индексы массива начинаются с 0. Это означает, что x [0] – это первый элемент, сохраненный с индексом 0.
  • Если размер массива равен n, последний элемент сохраняется по индексу (n-1). В этом примере x [5] – последний элемент.
  • Элементы массива имеют последовательные адреса. Например, предположим, что начальный адрес x [0] – 2120d. Тогда адрес следующего элемента x [1] будет 2124d, адрес x [2] будет 2128d и так далее. Здесь размер каждого элемента увеличивается на 4. Это потому, что размер int равен 4 байтам.

Инициализация

В С++ можно инициализировать массив во время объявления. Например:

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};

Другой способ инициализации массива при объявлении:

// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};

Здесь мы не упомянули размер массива. В таких случаях компилятор автоматически вычисляет размер.

Массив с пустыми членами

В C++, если массив имеет размер n, мы можем хранить до n элементов в массиве. Однако что произойдет, если мы сохраним менее n элементов.

Например:

// store only 3 elements in the array
int x[6] = {19, 10, 8};

Здесь массив x имеет размер 6. Однако мы инициализировали его всего тремя элементами.

В таких случаях компилятор присваивает оставшимся местам случайные значения. Часто это случайное значение просто 0.

Как вставить и распечатать элементы массива?

int mark[5] = {19, 10, 8, 17, 9}

// change 4th element to 9
mark[3] = 9;

// take input from the user
// store the value at third position
cin >> mark[2];


// take input from the user
// insert at ith position
cin >> mark[i-1];

// print first element of the array
cout << mark[0];

// print ith element of the array
cout >> mark[i-1];

Пример 1: отображение элементов

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {7, 5, 6, 12, 35};

    cout << "The numbers are: ";

    //  Printing array elements
    // using range based for loop
    for (const int n : numbers) {
        cout << n << "  ";
    }


    cout << "\nThe numbers are: ";

    //  Printing array elements
    // using traditional for loop
    for (int i = 0; i < 5; ++i) {
        cout << numbers[i] << "  ";
    }

    return 0;
}

Выход:

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

Здесь мы использовали цикл for для итерации от i = 0 до i = 4. На каждой итерации мы выводили числа [i].

Мы снова использовали цикл for на основе диапазона для вывода элементов массива.

Примечание. В нашем цикле на основе диапазона мы использовали код const int n вместо int n в качестве объявления диапазона. Однако более предпочтительным является const int n, потому что:

  1. Использование int n просто копирует элементы массива в переменную n во время каждой итерации. Это неэффективно с точки зрения памяти. n, однако, использует адрес памяти элементов массива для доступа к их данным, не копируя их в новую переменную. Это эффективно с точки зрения памяти.
  2. Мы просто печатаем элементы массива, а не изменяем их. Поэтому мы используем const, чтобы случайно не изменить значения массива.

Пример 2: получение входных данных от пользователя и сохранение их в массиве

#include <iostream>
using namespace std;

int main() {
    int numbers[5];

    cout << "Enter 5 numbers: " << endl;

    //  store input from user to array
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }

    cout << "The numbers are: ";

    //  print array elements
    for (int n = 0; n < 5; ++n) {
        cout << numbers[n] << "  ";
    }

    return 0;
}

Выход:

Enter 5 numbers: 
11
12
13
14
15
The numbers are: 11  12  13  14  15

И снова мы использовали цикл for для итерации от i = 0 до i = 4. На каждой итерации мы брали ввод от пользователя и сохраняли его в числах [i].

Затем мы использовали другой цикл for для печати всех элементов массива.

Пример 3: отображение суммы и среднего значений элементов, используемых для цикла

#include <iostream>
using namespace std;

int main() {
    
    // initialize an array without specifying size
    double numbers[] = {7, 5, 6, 12, 35, 27};

    double sum = 0;
    double count = 0;
    double average;

    cout << "The numbers are: ";

    //  print array elements
    // use of range-based for loop
    for (const double n : numbers) {
        cout << n << "  ";

        //  calculate the sum
        sum += n;

        // count the no. of array elements
        ++count;
    }

    // print the sum
    cout << "\nTheir Sum = " << sum << endl;

    // find the average
    average = sum / count;
    cout << "Their Average = " << average << endl;

    return 0;
}

Выход:

The numbers are: 7  5  6  12  35  27
Their Sum = 92
Their Average = 15. 3333

В этой программе:

  1. Мы инициализировали
    двойной
    массив с именем numbers, но не указали его размер. Мы также объявили три двойных переменных sum, count и average . Здесь sum = 0 и count = 0.
  2. Затем мы использовали цикл for на основе диапазона для печати элементов массива. На каждой итерации цикла мы добавляем текущий элемент массива к sum.
  3. Мы также увеличиваем значение count на 1 на каждой итерации, чтобы мы могли получить размер массива к концу цикла for.
  4. После печати всех элементов мы печатаем сумму и среднее всех чисел. Среднее значение чисел определяется как среднее значение = сумма/количество.

Примечание: мы использовали ранжированный цикл for вместо обычного цикла for.

Обычный цикл for требует, чтобы мы указали количество итераций, которое задается размером массива. Но для цикла с ранжированием такие спецификации не требуются.

Если мы объявим массив размером 10, то массив будет содержать элементы с индекса 0 до 9.

Однако, если мы попытаемся получить доступ к элементу с индексом 10 или более 10, это приведет к неопределенному поведению.

НОУ ИНТУИТ | Лекция | Использование языка Free Pascal для обработки массивов

< Лекция 10 || Лекция 5: 123456

Ключевые слова: массив, множества, temperature, определение, структурированный тип, список, матрица, free, Pascal, тип данных, перечислимый тип, переменная, константы, операция присваивания, ПО, операции, значение, блок-схема, Произведение, единица, алгоритм, if, сортировка, место, индекс, распределение памяти, нижняя граница, верхняя граница, Размещение, память, программа, цикла, функция, длина, MAX, основание, остаток, деление, формальный параметр, приложение, поле, метка, таблица

5.1 Общие сведения о массивах

В предыдущих главах мы рассматривали задачи, в которых использовались скалярные переменные. Однако при обработке однотипных данных (целочисленных значений, строк, дат и т. п.) оказывается удобным использовать массивы. Например, можно создать массив для хранения значений температуры в течении года. Вместо создания множества (365) переменных для хранения каждой температуры, например temperature1, temperature2, temperature3,… temperature365 можно использовать один массив с именем temperature, где каждому значению будет соответствовать порядковый номер (см. табл. 5.1).

Таблица 5.1. Массив значений температур
№ элемента1234364365
temperature-1. 5-3-6.712
-3

Таким образом, можно дать следующее определение.

Массив — структурированный тип данных, состоящий из фиксированного числа элементов одного типа.

Массив, представленный в таблице 5.2, имеет 7 элементов, каждый элемент сохраняет число вещественного типа. Элементы в массиве пронумерованы от 1 до 7. Такого рода массив, представляющий собой просто список данных одного и того же типа, называют простым, или одномерным массивом. Для доступа к данным, хранящимся в определённом элементе массива, необходимо указать имя массива и порядковый номер этого элемента, называемый индексом.

Если возникает необходимость хранения данных в виде таблиц, в формате строк и столбцов, то необходимо использовать многомерные массивы.

Таблица 5.2. Одномерный массив из 7 вещественных чисел
Элементы массива
1234567
-1.5-3.91313.672-1.5645. 894.008-3.61

В таблице 5.3 приведён пример массива, состоящего из трёх строк и четырёх столбцов. Это двумерный массив (матрица). Строки в нём можно считать первым измерением, а столбцы вторым. Для доступа к данным, хранящимся в этом массиве, необходимо указать имя массива и два индекса: первый должен соответствовать номеру строки, а второй номеру столбца, в которых хранится необходимый элемент.

Таблица 5.3. Двумерный числовой массив
Номера столбцов
1234
Номера строк16. 34.3-1.345.02
21.14.78.128.5
3-2.4-6.211.238.18

После общего знакомства с понятием «массив», рассмотрим работу с массивами в языке Free Pascal.

5.2 Описание массивов

Для описания массива служат служебные слова array of. Описать массив можно двумя способами.

Первый — ввести новый тип данных, а потом описать переменные нового типа. В этом случае формат оператора type следующий:

type

имя_типа = array [ тип_индекса ] of тип_компонентов;

В качестве типа_индекса следует использовать перечислимый тип. Тип_компонентов — это любой ранее определённый тип данных, например:

type
massiv=array [ 0.. 1 2 ] of real;
//Тип данных massiv из 13 элементов, которые нумеруются от 0
//до 12.
dabc=array [ - 3.. 6 ] of integer;
//Тип данных dabc из 10 элементов, которые нумеруются от
//-3 до 6.
var
x, y : massiv;
z : dabc;

Можно не вводить новый тип, а просто описать переменную следующим образом:

var переменная : array [ тип_индекса ] of тип_переменных;

Например:

var
z, x : array [ 1.. 2 5 ] of word;
//Массивы z и x из 25 значений типа word, которые нумеруются
//от 1 до 25. 
g : array [ - 3.. 7 ] of real;
//Массив g из 11 значений типа real, которые нумеруются от -3
//до 7.

Для описания массива можно использовать предварительно определённые константы:

const
n=10;
m=12;
var
a : array [ 1.. n ] of real;
b : array [ 0..m] of byte;

Константы должны быть определены до использования, так как массив не может быть переменной длины!

Двумерный массив (матрицу) можно описать, применив в качестве базового типа (типа компонентов) одномерный:

type
massiv=array [ 1.. 2 0 0 ] of real;
matrica=array [ 1.. 3 0 0 ] of massiv;
var
ab : matrica;

Такая же структура получается при использовании другой формы записи:

type
matrica = array [ 1.. 3 0 0, 1.. 2 0 0 ] of real;
var
ab : matrica;

или

var
ab : array [ 1. . 3 0 0, 1.. 2 0 0 ] of real;

При всех трёх определениях мы получали матрицу вещественных чисел, состоящую из 300 строк и 200 столбцов.

Аналогично можно ввести трёхмерный массив или массив большего числа измерений:

type
abc=array [ 1.. 4, 0.. 6, _ 7.. 8, 3.. 1 1 ] of real;
var
b : abc;

Дальше >>

< Лекция 10 || Лекция 5: 123456

Программа для чтения и печати массива на языке C

Описание программы:

Напишите программу для чтения и печати массива на языке C. Программа должна принимать целые числа от пользователя и сохранять их как элементы массива, а затем печатать их на стандартном выводе (консоли)

Пример ввода и вывода:

Ввод:

Все, что я хочу, с любым значением атрибута здесь: .

Вывод:

Все, что я хочу, с любым значением атрибута здесь: .

Предварительные требования:

Поскольку мы собираемся использовать массивы в этой программе, рекомендуется знать основы массивов C. Пожалуйста, прочитайте следующие статьи, чтобы узнать больше о массивах в C

  • Введение в массивы C — как объявить, получить доступ и изменить массивы
  • Двумерные массивы в C с примерами программ
  • с к функциям в C

Чтение и печать массива в C Программа Объяснение:

  1. Запустите программу, объявив массив размером Глобальная константа SIZE – целый массив [РАЗМЕР];
    • Мы создали глобальная константа SIZE и инициализируется с помощью 10. Итак, размер массива 10. Так же используем макрос вместо глобальной константы — константа int SIZE = 10;
  2. Чтение массива: Нам нужно получить ввод от пользователя и обновить элементы массива. Используйте цикл for для перебора массив и запрашивать у пользователя входные значения для каждого элемента массива ( множество). Затем прочитайте значения, используя scanf и сохранить их в соответствующем элемент массива.
  3. Печать массива: Используйте цикл for для вывода элементов массива на консоль. Цикл for начнется с и идет до SIZE

Программа для чтения и печати массива на языке C:

Напишем программу.

Все, что я хочу, с любым значением атрибута здесь: .

В приведенной выше программе нам не нужно использовать size в качестве дополнительного параметра функции. Поскольку у нас уже есть глобальная константа SIZE, мы можем использовать ее напрямую.

Выход программы:

Давайте скомпилируем программу, используя GCC (любой компилятор)

gcc read-print-arr.c

Приведенная выше команда создает исполняемый файл аут

Запустить программу.

Все, что я хочу, с любым значением атрибута здесь: .

Как видно из приведенной выше программы, программа считывает ввод пользователя и выводит его обратно на консоль.

Альтернативный способ: чтение и печать массива в C:

Вместо того, чтобы печатать массив поэлементно, давайте напечатаем его в одну строку.

Все, что я хочу, с любым значением атрибута здесь: .

Вывод программы:

Скомпилируйте и запустите программу

Все, что я хочу, с любым значением атрибута здесь: .

Чтение и печать массива с помощью функций языка программирования C:

Чтение и печать массива с помощью функции Объяснение программы:

  1. Создайте константу с именем ARRAY_SIZE с размером массива.
  2. В функции main() объявить целочисленный массив обр с ARRAY_SIZE элементов.
  3. Позвоните функция read() из функцию main() и передать arr и его размер в качестве аргументов. Функция read() предложит пользователю ввести значения для каждого элемента массива и обновит массив.
    1. Функция read() принимает целочисленный указатель обр и его размер как формальные аргументы – void read(int *arr, int size)
    2. Затем он запрашивает у пользователя входные значения для каждого элемента массива( обр. ).
    3. Значения считываются с помощью scanf() и сохраняется в соответствующем массиве( обр) элемент.
  4. Позвоните функцию print() и передать arr и его размер в качестве аргументов. Функция print() напечатает элементы массива до
    1. . функция печати также принимает целочисленный указатель обр и размер как формальные аргументы – void print(int arr[], int size)
    2. Затем он использует цикл for для перебора каждого элемента arr, он печатает индекс элемента и соответствующее ему значение.

Чтение и печать массива с использованием функциональной программы:

Все, что я хочу, с любым значением атрибута здесь: .

📢В вышеуказанной программе Нам не нужно проходить size в качестве дополнительного параметра функции, так как у нас уже есть глобальная константа SIZE.

Вывод программы:

Скомпилируйте и запустите программу

Все, что я хочу, с любым значением атрибута здесь: .

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *