Как вывести индекс элемента массива в c
До сих пор мы рассматривали примеры работы с небольшим количеством данных, для работы с которыми достаточно использовать только простые переменные. Если данных много, то использование одних простых переменных становится явно недостаточным. Гораздо удобнее объединять их в более сложную организацию данных, например, в массивы.
Массив — это совокупность данных одного типа, имеющая одно общее имя. Доступ к отдельному элементу массива осуществляется путем указания имени массива и номера (индекса) этого элемента. До использования массива его необходимо определить, т.е. дать ему имя и указать количество и тип элементов. Индексы в любом массиве на языке C/C++ всегда начинается с 0 .
Пусть имеется массив из 5 действительных чисел. Графически этот массив можно изобразить так, как показано на рисунке ниже:
Для того, чтобы начать работать с массивом, необходимо дать его описание. Формальная запись описания массива такова:
Тип_элементов_массива Имя_массива [ Количество_элементов ];
Тип_элементов_массива — любой стандартный или ранее определённый пользователем тип данных;
Имя_массива — обычный идентификатор;
Количество_элементов — целое число, большее 0 , возможно, именованная константа.
Для нашего массива x описание будет выглядеть так:
После этого можно начинать работать с элементами массива, например, присвоить второму элементу новое значение:
или напечатать сумму значений первых двух элементов массива:
Как нетрудно убедиться, элементы массива могут использоваться точно так же, как и простые переменные. Единственное отличие — требуется указывать индексы элементов.
Индекс (номер) элемента массива — это константа, переменная или более сложное выражение целого типа. Можно было бы написать:
x[i*3-2] = x[i+1] + x[i%5] — x[3];
главное, чтобы индексы (или в более сложном случае — индексные выражения) находились в допустимых пределах. Индексы элементов нашего массива x должны лежать в пределах от 0 до 4 , т.е. максимально допустимый индекс на единицу меньше количества элементов массива .
А что произойдёт, если обратиться к элементу с индексом, значение которого выходит за допустимый диапазон? Для нашего примера, запишем так:
Внешних проявлений (например, сообщений об ошибке), как правило, не будет, просто программа обратится к «чужому» участку памяти и «испортит» значение какой-либо переменной.
Выход за допустимые пределы индексов массива — это характерная ошибка в программах на языках С/С++ . К сожалению, компилятор тут не помощник — он ни как не контролирует выход за допустимые пределы. Поэтому программисту самому необходимо проявлять повышенную внимательность и аккуратность в работе с массивами. При работе с программой, в которой используются массивы, всегда задавайте себе вопрос: «Не выходит ли где-то индекс массива за допустимые пределы?».
Вернёмся снова к описанию массива. Хороша ли запись
Ответ один — нет, плоха. Почему? Да потому, что при работе с массивами мы постоянно используем просмотр массива, т.е. нам для нашего массива из 5 чисел придётся использовать циклы вида
А что делать, если количество чисел изменится? Просматривать текст всей программы и «править» все циклы? Глупо как-то, да и ошибиться легко. Нужен какой-то выход, и он есть: количество элементов массива нужно задавать не константой (числом), а именованной константой. Тогда количество элементов массива потребуется изменить только в одном месте, а остальной текст программы останется прежним.
На языке С был только один способ создания константы с именем: с помощью директивы define . Схема программы будет выглядеть так:
double x[n]; // описание массива
int i; // переменная цикла
Одна проблема решена, но есть и другая, также весьма неприятная. Что произойдёт, если в директиве define пользователь задаст неверное по смыслу значение для константы, например, другого типа:
или наберёт просто какой-то абсурд:
В этом случае препроцессор «честно» выполнит подстановки, и после компиляции (а в ряде случаев — в ходе выполнения исполняемого модуля) в программе появится сообщение об ошибке, но ссылка будет не на строку, где допущена ошибка (директива define ), а гораздо дальше — там где она используется, — возможно через десятки или сотни строк. Если для приведённой выше схемы написать
то ошибка будет указана в строке
которая совсем не причём.
Для радикального решения проблемы на языке С++ появился более надёжный способ создания константы с именем: с помощью константной переменной . Схема программы будет выглядеть так:
double x[n]; // описание массива
int i; // переменная цикла
Достоинство такого подхода в том, что теперь компилятор проверяет правильность оператора, в котором мы задаём размер массива:
Если в этом операторе переменной n будет задано что-то неприемлемое:
const int n = ЮЮЮ
то сообщение об ошибке будет дано именно для этого оператора, а не где-то ниже по тексту.
Для закрепления материала рассмотрим задачу.
Пример . Дан массив действительных чисел из n элементов. Найти максимальный по модулю элемент и разделить все элементы массива на полученное значение. Вывести на экран монитора массив после обработки.
Возможный текст программы:
using namespace std;
// Задаём массив из n действительных чисел
// Поиск максимального по модулю элемента массива
// Предположим, что x[0] — это и есть максимальный
// по модулю элемент массива:
// А теперь пробуем себя опровергнуть:
// Делим все элементы на max
Инициализация массивов
Элементы массива можно проинициализировать, т.е. задать им начальные значения на этапе выделения памяти под массив. Делается это почти так же, как для простых переменных. Зададим начальные значения элементов массива в нашем примере (смотри рисунок в начале этой темы):
Если при инициализации задано меньше данных, чем выделяется памяти (у нас — для пяти чисел), то значение элементов массива, которые не получили значение в момент выделения памяти, будет неопределённым.
Можно пойти и дальше: не задавать при инициализации массива его размер. Пусть компилятор сам определяет, сколько байт необходимо выделить под рассматриваемый массив:
Но как обрабатывать теперь массив? Нам же надо знать количество элементов! Поделим размер массива на размер одного элемента — это и будет искомым значением:
int n = sizeof(x) / sizeof(double);
Здесь sizeof() — это стандартная операция по вычислению размера какого-либо объекта.
Теперь можно применять привычный подход при обработке массива:
Как получить индекс элемента массива с bsearch на Си?
Массив после сортировки такой -100 -32 -31 0 1 2 3 31
Затем мне нужно найти какой индекс у элемента со значением 0 в данном массиве
Но проблема в том, что я только получаю указатель и по нему могу только определить входит этот элемент в массив или нет! А мне нужно индекс элемента
Подскажите пожалуйста как это сделать!
Решил
int *p; int c = 31; p = bsearch(&c, a, sizeof(a) / sizeof(int), sizeof(int), numeric); int *pointer; pointer = &a[0]; printf("%d", p -pointer);
- Вопрос задан более трёх лет назад
- 4318 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2

Армянское Радио @gbg Куратор тега C++
Любые ответы на любые вопросы
Вычтите из указателя указатель на начало массива. Будет индекс.
как вывести индекс массива js
Будем считать, что нам нужно вывести индекс Элемента в массиве. Для того можно использовать метод indexOf() . Этот метод возвращает индекс первого вхождения элемента в массиве:
const arr = ['a', 'b', 'c', 'd', 'e', 'f']; console.log(arr.indexOf('e')); // 4
Здесь console.log выведет 4 , так как элемент со значением ‘e’ находится в четвертой позиции (отсчет ведется с нуля).
Если элемент не найден в массиве, то метод indexOf() вернет -1 .
Массивы
Часто возникает необходимость хранить не одну переменную, а набор однотипных переменных. Например, список учащихся класса – это набор данных строкового типа, координаты вершин многоугольника или коэффициенты многочлена – это набор числовых данных. Для хранения наборов данных используются структуры данных. Основная структура данных – это массив.
— это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер — количество элементов в нем. Каждый элемент массива имеет свой номер (также называемый ), обращение к элементу массива осуществляется путем указания его индекса. В языке C++ элементы нумеруются, начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива.
Массив в языке C++ задается следующим образом:
тип_элементов идентификатор [ размер ];
где тип_элементов — произвольный тип данных языка C++, который будут иметь элементы массива, например, int , double и т.д.; идентификатор — имя массива, размер — число элементов в нем.
К элементу массива можно обращаться, как идентификатор [ индекс ] . Например, если было сделано объявление
то таким образом создается 5 элементов массива типа double : A[0] , A[1] , A[2] , A[3] , A[4] .
Пример программы, которая создает массив типа int[] , заданного пользователем размера, считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива число 1 , затем выводит результат на экран:
#include
using namespace std;
int main()
int n; // Размер массива
int i; // Счетчик в циклах
int arr[n]; // Объявление массива (так делать нельзя), лучше вместо такого объявления массива использовать std::vector arr(n);
// Прибавляем по 1 к каждому элементу
for(i=0;i
// Выводим массив на экран
for(i=0;i
cout return 0;
>
В этом примере при помощи // обозначается начало комментария, весь текст после начала комментария и до конца строки компилятором игнорируется. Второй способ объявления комментария: в начале комментария поставить знаки /* , а в конце – */ . Это позволяет делать комментарии, занимающие несколько строк. В языке C допустимы только такие комментарии. ::min()>@w< >— минимальное значение типа @code —> ::max()>@w< >— максимальное значение типа @code. —>
Упражнения
- (A) Выведите на экран все элементы массива с четными индексами (то есть A[0] , A[2] , A[4] , . ).
- (B) Выведите на экран все четные элементы массива (то есть те элементы, которые являются четными числами).
- (C) Найдите количество положительных элементов в массиве. Программа должна считать массив и вывести единственное число – количество положительных элементов в массиве.
- (D) Дан массив. Найдите количество элементов массива, которые больше предыдущего элемента в этом массиве.
- (E) Массив содержит только ненулевые числа. Определите, есть ли в данном массиве два соседних элемента с одинаковыми знаками. Программа должна вывести YES , если есть два числа с одинаковыми знаками и NO иначе.
- (F) Дан массив. Определите, сколько в этом массиве элементов, которые строго больше обоих своих соседей.
- (G) Дан массив. Переставьте элементы массива в обратном порядке без использования дополнительного массива. Программа должна считать массив, поменять порядок его элементов, вывести результат на экран (просто вывести элементы массива в обратном порядке – недостаточно!).
- (H) Переставьте соседние элементы массива (0-й элемент поменять с 1-м, 2-й с 3-м и т.д. Если элементов нечетное число, то последний элемент остается на своем месте)
- (I) Циклически сдвиньте элементы массива вправо (0-й элемент становится 1-м, 1-й становится 2-м, . последний становится 0-м, то есть массив превращается в массив ).
- (J) Найдите значение наибольшего элемента в массиве.
- (K) Дан массив, отсортированный по возрастанию (каждый элемент массива не меньше предыдущего элемента, например, ). Найдите количество различных чисел в этом массиве. 2 ,x ^2>+. +@code@formula,x n-1 ,x^(n-1)>.> —>
Как вывести индекс элемента массива в c
До сих пор мы рассматривали примеры работы с небольшим количеством данных, для работы с которыми достаточно использовать только простые переменные. Если данных много, то использование одних простых переменных становится явно недостаточным. Гораздо удобнее объединять их в более сложную организацию данных, например, в массивы.
Массив — это совокупность данных одного типа, имеющая одно общее имя. Доступ к отдельному элементу массива осуществляется путем указания имени массива и номера (индекса) этого элемента. До использования массива его необходимо определить, т.е. дать ему имя и указать количество и тип элементов. Индексы в любом массиве на языке C/C++ всегда начинается с 0 .
Пусть имеется массив из 5 действительных чисел. Графически этот массив можно изобразить так, как показано на рисунке ниже:
Для того, чтобы начать работать с массивом, необходимо дать его описание. Формальная запись описания массива такова:
Тип_элементов_массива Имя_массива [ Количество_элементов ];
Тип_элементов_массива — любой стандартный или ранее определённый пользователем тип данных;
Имя_массива — обычный идентификатор;
Количество_элементов — целое число, большее 0 , возможно, именованная константа.
Для нашего массива x описание будет выглядеть так:
После этого можно начинать работать с элементами массива, например, присвоить второму элементу новое значение:
или напечатать сумму значений первых двух элементов массива:
Как нетрудно убедиться, элементы массива могут использоваться точно так же, как и простые переменные. Единственное отличие — требуется указывать индексы элементов.
Индекс (номер) элемента массива — это константа, переменная или более сложное выражение целого типа. Можно было бы написать:
x[i*3-2] = x[i+1] + x[i%5] — x[3];
главное, чтобы индексы (или в более сложном случае — индексные выражения) находились в допустимых пределах. Индексы элементов нашего массива x должны лежать в пределах от 0 до 4 , т.е. максимально допустимый индекс на единицу меньше количества элементов массива .
А что произойдёт, если обратиться к элементу с индексом, значение которого выходит за допустимый диапазон? Для нашего примера, запишем так:
Внешних проявлений (например, сообщений об ошибке), как правило, не будет, просто программа обратится к «чужому» участку памяти и «испортит» значение какой-либо переменной.
Выход за допустимые пределы индексов массива — это характерная ошибка в программах на языках С/С++ . К сожалению, компилятор тут не помощник — он ни как не контролирует выход за допустимые пределы. Поэтому программисту самому необходимо проявлять повышенную внимательность и аккуратность в работе с массивами. При работе с программой, в которой используются массивы, всегда задавайте себе вопрос: «Не выходит ли где-то индекс массива за допустимые пределы?».
Вернёмся снова к описанию массива. Хороша ли запись
Ответ один — нет, плоха. Почему? Да потому, что при работе с массивами мы постоянно используем просмотр массива, т.е. нам для нашего массива из 5 чисел придётся использовать циклы вида
А что делать, если количество чисел изменится? Просматривать текст всей программы и «править» все циклы? Глупо как-то, да и ошибиться легко. Нужен какой-то выход, и он есть: количество элементов массива нужно задавать не константой (числом), а именованной константой. Тогда количество элементов массива потребуется изменить только в одном месте, а остальной текст программы останется прежним.
На языке С был только один способ создания константы с именем: с помощью директивы define . Схема программы будет выглядеть так:
double x[n]; // описание массива
int i; // переменная цикла
Одна проблема решена, но есть и другая, также весьма неприятная. Что произойдёт, если в директиве define пользователь задаст неверное по смыслу значение для константы, например, другого типа:
или наберёт просто какой-то абсурд:
В этом случае препроцессор «честно» выполнит подстановки, и после компиляции (а в ряде случаев — в ходе выполнения исполняемого модуля) в программе появится сообщение об ошибке, но ссылка будет не на строку, где допущена ошибка (директива define ), а гораздо дальше — там где она используется, — возможно через десятки или сотни строк. Если для приведённой выше схемы написать
то ошибка будет указана в строке
которая совсем не причём.
Для радикального решения проблемы на языке С++ появился более надёжный способ создания константы с именем: с помощью константной переменной . Схема программы будет выглядеть так:
double x[n]; // описание массива
int i; // переменная цикла
Достоинство такого подхода в том, что теперь компилятор проверяет правильность оператора, в котором мы задаём размер массива:
Если в этом операторе переменной n будет задано что-то неприемлемое:
const int n = ЮЮЮ
то сообщение об ошибке будет дано именно для этого оператора, а не где-то ниже по тексту.
Для закрепления материала рассмотрим задачу.
Пример . Дан массив действительных чисел из n элементов. Найти максимальный по модулю элемент и разделить все элементы массива на полученное значение. Вывести на экран монитора массив после обработки.
Возможный текст программы:
using namespace std;
// Задаём массив из n действительных чисел
// Поиск максимального по модулю элемента массива
// Предположим, что x[0] — это и есть максимальный
// по модулю элемент массива:
// А теперь пробуем себя опровергнуть:
// Делим все элементы на max
Инициализация массивов
Элементы массива можно проинициализировать, т.е. задать им начальные значения на этапе выделения памяти под массив. Делается это почти так же, как для простых переменных. Зададим начальные значения элементов массива в нашем примере (смотри рисунок в начале этой темы):
Если при инициализации задано меньше данных, чем выделяется памяти (у нас — для пяти чисел), то значение элементов массива, которые не получили значение в момент выделения памяти, будет неопределённым.
Можно пойти и дальше: не задавать при инициализации массива его размер. Пусть компилятор сам определяет, сколько байт необходимо выделить под рассматриваемый массив:
Но как обрабатывать теперь массив? Нам же надо знать количество элементов! Поделим размер массива на размер одного элемента — это и будет искомым значением:
int n = sizeof(x) / sizeof(double);
Здесь sizeof() — это стандартная операция по вычислению размера какого-либо объекта.
Теперь можно применять привычный подход при обработке массива:
Массивы
Часто возникает необходимость хранить не одну переменную, а набор однотипных переменных. Например, список учащихся класса – это набор данных строкового типа, координаты вершин многоугольника или коэффициенты многочлена – это набор числовых данных. Для хранения наборов данных используются структуры данных. Основная структура данных – это массив.
— это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер — количество элементов в нем. Каждый элемент массива имеет свой номер (также называемый ), обращение к элементу массива осуществляется путем указания его индекса. В языке C++ элементы нумеруются, начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива.
Массив в языке C++ задается следующим образом:
тип_элементов идентификатор [ размер ];
где тип_элементов — произвольный тип данных языка C++, который будут иметь элементы массива, например, int , double и т.д.; идентификатор — имя массива, размер — число элементов в нем.
К элементу массива можно обращаться, как идентификатор [ индекс ] . Например, если было сделано объявление
то таким образом создается 5 элементов массива типа double : A[0] , A[1] , A[2] , A[3] , A[4] .
Пример программы, которая создает массив типа int[] , заданного пользователем размера, считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива число 1 , затем выводит результат на экран:
#include
using namespace std;
int main()
int n; // Размер массива
int i; // Счетчик в циклах
int arr[n]; // Объявление массива (так делать нельзя), лучше вместо такого объявления массива использовать std::vector arr(n);
// Прибавляем по 1 к каждому элементу
for(i=0;i
// Выводим массив на экран
for(i=0;i
cout return 0;
>
В этом примере при помощи // обозначается начало комментария, весь текст после начала комментария и до конца строки компилятором игнорируется. Второй способ объявления комментария: в начале комментария поставить знаки /* , а в конце – */ . Это позволяет делать комментарии, занимающие несколько строк. В языке C допустимы только такие комментарии. ::min()>@w< >— минимальное значение типа @code —> ::max()>@w< >— максимальное значение типа @code. —>
Упражнения
- (A) Выведите на экран все элементы массива с четными индексами (то есть A[0] , A[2] , A[4] , . ).
- (B) Выведите на экран все четные элементы массива (то есть те элементы, которые являются четными числами).
- (C) Найдите количество положительных элементов в массиве. Программа должна считать массив и вывести единственное число – количество положительных элементов в массиве.
- (D) Дан массив. Найдите количество элементов массива, которые больше предыдущего элемента в этом массиве.
- (E) Массив содержит только ненулевые числа. Определите, есть ли в данном массиве два соседних элемента с одинаковыми знаками. Программа должна вывести YES , если есть два числа с одинаковыми знаками и NO иначе.
- (F) Дан массив. Определите, сколько в этом массиве элементов, которые строго больше обоих своих соседей.
- (G) Дан массив. Переставьте элементы массива в обратном порядке без использования дополнительного массива. Программа должна считать массив, поменять порядок его элементов, вывести результат на экран (просто вывести элементы массива в обратном порядке – недостаточно!).
- (H) Переставьте соседние элементы массива (0-й элемент поменять с 1-м, 2-й с 3-м и т.д. Если элементов нечетное число, то последний элемент остается на своем месте)
- (I) Циклически сдвиньте элементы массива вправо (0-й элемент становится 1-м, 1-й становится 2-м, . последний становится 0-м, то есть массив превращается в массив ).
- (J) Найдите значение наибольшего элемента в массиве.
- (K) Дан массив, отсортированный по возрастанию (каждый элемент массива не меньше предыдущего элемента, например, ). Найдите количество различных чисел в этом массиве. 2 ,x ^2>+. +@code@formula,x n-1 ,x^(n-1)>.> —>
С++, Получить индексы максимального и минимального элементов массива
Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран. Затем найдите позиции (номер строки и столбца) максимального и минимального элементов этой матрицы.
Все очень похоже на нахождение минимального и максимального элементов, с разницей в том, что здесь нужно знать еще индексы и вместе с обновлением значения минимального и максимального элементов мы обновляем еще и индексы.
#include #include using namespace std; int main() < int min =0; int max =0; int imin =-1; int jmin =-1; int imax =-1; int jmax =-1; srand(time(NULL)); int n = 0; int sum = 0; cin >> n; // Считываем с клавиатуры n int **a = new int* [n]; // Создаем массив указателей for (int i = 0; i < n; i++) < a[i] = new int [n]; // Создаем элементы >// А дальше работа как с обычным массивом. for (int i = 0; i < n; i++) < for (int j = 0; j < n; j++) < a[i][j] = rand() % 10; cout cout // Считаем минимальный и максимальный min = a[0][0];// берем самый первый элемент массива и считаем, что он минимальный. max = a[0][0];// и он же максимальный. for (int i = 0; i < n; i++) < for (int j = 0; j < n; j++) < if (a[i][j] if (a[i][j] >= max) < max = a[i][j]; imax = i; jmax = j; >> > cout delete [] a; // А потом массив return 0; >

Примечание: счет идет с нуля.
- C++, Найти минимальный и максимальный элемент массива
- C++, сумма всех элементов матрицы
- C++, След матрицы
- Pascal: Сумма некоторых элементов массива
- C, Находится ли элемент матрицы (массива) на диагоналях?
1 Response
Георгий 04.12.2014 / 02:34
Работа с массивами. Часть 1

Доброго времени суток, сегодня мы поговорим о массивах, разберём некоторые тонкости заполнения массивов в Си. Тема несложная, думаю, легко разберётесь. Итак, давайте начнём. Заполнить целочисленный массив array_int[N] (N = 34) числами из диапазона [-83; 90] и массив array_double[N] дробными числами из диапазона [-2.38; 6.57]. Вывести массивы на экран в две строки. Вывести массивы в файл в два столбца в формате «array_int[индекс] = значение; array_double[индекс]= значение». Код:
#include stdio.h> #include stdlib.h> #define N 34 int main(void) FILE*file; file = fopen("file.txt","w"); int array_int[N], i, j; for (i = 1; i = N; i++) array_int[i] = -83 +rand() % (90 + 83 + 1); printf("%d ", array_int[i]); > printf("\n"); double array_double[N],t; for (j = 1; j = N;) t = rand() % 8 - 2 + (rand() % 95 - 38) / 100.0; if ((t = 6.57 ) && (t >= -2.38)) array_double[j] = t; printf("%.2lf ", array_double[j]); j++; > > for (i = 1; i = N; i++) fprintf(file, "array_int[%d] = %d\t array_double[%d] = %.2lf \n ", i, array_int[i], i, array_double[i]); > fclose(file); return EXIT_SUCCESS; >

Вывод:
Команд новых нет, но поговорим об изюминке во втором цикле (при заполнении дробного массива): Чтобы заполнить массив дробными «рандомными» числами из диапазона [-2.38; 6.57], необходимо сначала сгенерировать целые числа rand() % 8 — 2, где 8 сумма целого чисел у границы (-2.38 и 6.57), затем уже сгенерировать дробную часть (rand() % 95 — 38) / 100.0, где 95 сумма границ ( 38 + 57 ).
Мы используем условие if ((t = -2.38)), чтобы быть точно уверенным, что результат будет именно в этом диапазоне. А также в этом примере я показал, что у цикла for переменная j может быть изменена не только в объявлении цикла, но и посередине его.
Следующий: Заполнить массив array[20] степенями числа 2, начиная с минус пятой степени. Вывести массив на экран в строку. Код:
#include stdio.h> #include stdlib.h> #include math.h> #define N 20 int main(void) int i,k; k = -5; double array[N]; for (i = 0; i N; i++) array[i] = pow(2,k); k++; printf("%.3lf ", array[i]); > return EXIT_SUCCESS; >
Как видите, ничего сложного. Если вы осилили предыдущие задачи в статьях, то это для вас будет так, пальцы размять =)
Едем дальше. Заполнить одномерный массив из 15 элементов случайными числами из диапазона [-30; 16]. Вывести на экран массив в строку. Найти первое с конца массива число, которое кратно 7, если таких чисел нет, то вывести сообщение о том, что чисел кратных семи не обнаружено. Использовать оператор break.
#include stdio.h> #include stdlib.h> #define N 15 int main(void) int mas[N], i, k = 0; for (i = 0; i N; i++) mas[i] = - 30 + rand() % (16 + 30 + 1); printf("%d ", mas[i]); > for (i = N - 1; i >= 0; i--) if (mas[i] % 7 == 0) printf("\n%d", mas[i]); k = 1; break; > > if (k == 0) printf("не найдено"); return EXIT_SUCCESS; >
Break — команда прерывания цикла и выход из него, запуск последующих операторов и инструкций. Алгоритм решения примера несложен.
И последний на сегодня: Заполнить одномерный массив из 20-ти элементов из файла input.txt и вывести его на экран. Изменить элементы массива, умножив четные элементы на 2, а нечетные — на 3. Вывести измененный массив на экран на новой строке.
#include stdio.h> #include stdlib.h> int main(void) FILE*input; input = fopen("input.txt","r"); int mas[20],i; for (i = 1; i = 20; i++) fscanf(input, "%d", & mas[i]); printf("%d ", mas[i]); > printf("\n"); for (i = 1; i = 20; i++) if (mas[i] % 2 == 0) mas[i] *= 2; > else mas[i] *= 3; > printf("%d ", mas[i]); > fclose(input); return EXIT_SUCCESS; >

Ввод/вывод:
Тут тоже ничего особенного, поэтому на этом и закончим.=) Вот и всё. Пишите вопросы, комментируйте, всем ответим. Все исходники без файлов txt.
Скачать исходники задачи — 1
Скачать исходники задачи — 2
Скачать исходники задачи — 3
Скачать исходники задачи — 4