Дан массив целых чисел размерности n (n вводится с клавиатуры). В
случае, если элементы, стоящие на нечетных индексах образуют
возрастающую последовательность, получить среднее арифметическое
четных элементов, иначе – количество положительных элементов.
Другие языки программирования и технологии
Помогите с написание программы СИ (С комментариями пожалуйста )
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 50 // Максимальный размер массива.
int main() {
int arr[MAX_SIZE]; // Массив с запасом на MAX_SIZE элементов.
printf("Enter the number of elements (max allowed is %d):\n", MAX_SIZE);
int n;
scanf("%d", &n); // Считываем n с клавиатуры.
srand((unsigned)time(NULL)); // Инициализируем генератор случайных чисел.
// Заполняем массив случайными числами из диапазона [-10;50] и выводим его.
for (int i = 0; i < n; i++) {
arr[i] = -10 + rand() % 61;
printf("%d ", arr[i]);
}
printf("\n");
int ascending = 1; // Флаг true, предполагаем, что последовательность возрастающая.
for (int i = 3; i < n; i += 2)
// Если нарушено условие возрастания, то устанавливаем флаг в false и прекращаем цикл.
if (arr[i] < arr[i - 2]) {
ascending = 0;
break;
}
if (ascending) {
int evenCount = 0, sum = 0;
for (int i = 0; i < n; i++)
if (arr[i] % 2 == 0) {
++evenCount;
sum += arr[i];
}
if (evenCount)
printf("Average of even elements: %lf\n", sum / (double)evenCount);
else
printf("Array has no even elements\n");
} else {
int positiveCount = 0;
for (int i = 0; i < n; i++)
positiveCount += arr[i] > 0;
printf("Number of positive elements: %d\n", positiveCount);
}
return 0;
}
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 50 // Максимальный размер массива.
int main() {
int arr[MAX_SIZE]; // Массив с запасом на MAX_SIZE элементов.
printf("Enter the number of elements (max allowed is %d):\n", MAX_SIZE);
int n;
scanf("%d", &n); // Считываем n с клавиатуры.
srand((unsigned)time(NULL)); // Инициализируем генератор случайных чисел.
// Заполняем массив случайными числами из диапазона [-10;50] и выводим его.
for (int i = 0; i < n; i++) {
arr[i] = -10 + rand() % 61;
printf("%d ", arr[i]);
}
printf("\n");
int ascending = 1; // Флаг true, предполагаем, что последовательность возрастающая.
for (int i = 3; i < n; i += 2)
// Если нарушено условие возрастания, то устанавливаем флаг в false и прекращаем цикл.
if (arr[i] < arr[i - 2]) {
ascending = 0;
break;
}
if (ascending) {
int evenCount = 0, sum = 0;
for (int i = 0; i < n; i++)
if (arr[i] % 2 == 0) {
++evenCount;
sum += arr[i];
}
if (evenCount)
printf("Average of even elements: %lf\n", sum / (double)evenCount);
else
printf("Array has no even elements\n");
} else {
int positiveCount = 0;
for (int i = 0; i < n; i++)
positiveCount += arr[i] > 0;
printf("Number of positive elements: %d\n", positiveCount);
}
return 0;
}
#include "stdio.h"/*Подключение библиотеки стандартного ввода/вывода данных. */ /*Заменить " " на < >*/
#include "conio.h"/*Подключение дополнительной библиотеки ввода/вывода данных. */ /*Заменить " " на < >*/
int main()
{
int* A;/*Указатель на целочисленный маасив A*/
int n;/*Количество элементов массива. */
int i;/*Итератор циклов. */
int s; int c; int cp;/*Сумма четных элементов; Количество чётных элементов; Количество положительных элементов массива. */
int ap; int b;/*Значение предыдущего элемента массива с нечётным индексом; Параметр b. 1 - Последовательность элементов массива с нечётными индексами возрастающая, 0 - убывающая. */
/*Ввод количества элементов массива, с проверкой на корректность. */
/*Программа будет запрашивать ввод нового значения, до тех пор, пока оно не будет больше двух. */
printf("Количество элементов массива должно быть больше двух. \n");
do
{
printf("Введите количество элементов массива:");
scanf("%d", &n);/*Сохранение введенного значения в переменной n.*/
} while (n < 3);/*Цикл повториться, если n < 3.*/
/*Индексы элементов массива [1;n].*/
A = (int*) malloc((n + 1) * sizeof(int));/*Выделение памяти под массив целочисленных элементов. */
s = 0; c = 0; cp = 0;/*Сумма четных элементов; Количество чётных элементов; Количество положительных элементов массива. */
for (i = 1; i <= n; i++)/*Цикл по всем элементам массива A.*/
{
printf("A[%d]=", i);/*Вывод на экран номера текущего элемента массива. */
scanf("%d", A + i);/*Считывание с клавиатуры значения текущего элемента массива*/
if (A[i] % 2 == 0)/*Проверка текущего элемента массива на чётность. */
{
s += A[i];/*Увеличение суммы чётных элементов массива на значение текущего четного элемента массива. */
c++;/*Увеличение счетчика чётных элементов массива на единицу. */
}
if (A[i] > 0)/*Проверка текущего элемента массива на положительность. */
cp++;/*Увеличение счётчика положительных элементов на единицу. */
}
ap = A[1]; b = 1;/*Значение предыдущего элемента массива с нечётным индексом; Параметр b. 1 - Последовательность элементов массива с нечётными индексами возрастающая, 0 - убывающая. */
for (i = 3; i <= n; i += 2)/*Цикл по нечётным элементам массива. */
{
if (A[i] <= ap)/*Если текущий элемент массива с нечётным индексом меньше значения предыдущего: */
b = 0;/*Параметру b присваивается нулевое значение. */
ap = A[i];/*Значению предыдущего элемента массива с нечётным индексом присваивается значение текущего элемента массива с нечётным индексом. */
}
if (b == 1)/*Если последовательность элементов массива с нечетными индексами возрастающая. */
printf("%.3f", (float)s / c);/*Вывод на экран среднего арифметического чётных элементов массива. "(float)s" - явное приведение типа переменной s к типу float. Необходимо, для не целочисленного деления. */
else/*Если последовательность элементов массива с нечетными индексами убывающая. */
printf("%d", cp);/*Вывод на экран количества положительных элементов массива*/
free(A);/*Освобождение памяти, занимаемой динамическим массивом A*/
printf("\nНажмите клавишу Enter для завершения работы программы.");
getch();/*Приложение не завершит работы, пока не будет нажата клавиша Enter.*/
return 0;
}
#include "conio.h"/*Подключение дополнительной библиотеки ввода/вывода данных. */ /*Заменить " " на < >*/
int main()
{
int* A;/*Указатель на целочисленный маасив A*/
int n;/*Количество элементов массива. */
int i;/*Итератор циклов. */
int s; int c; int cp;/*Сумма четных элементов; Количество чётных элементов; Количество положительных элементов массива. */
int ap; int b;/*Значение предыдущего элемента массива с нечётным индексом; Параметр b. 1 - Последовательность элементов массива с нечётными индексами возрастающая, 0 - убывающая. */
/*Ввод количества элементов массива, с проверкой на корректность. */
/*Программа будет запрашивать ввод нового значения, до тех пор, пока оно не будет больше двух. */
printf("Количество элементов массива должно быть больше двух. \n");
do
{
printf("Введите количество элементов массива:");
scanf("%d", &n);/*Сохранение введенного значения в переменной n.*/
} while (n < 3);/*Цикл повториться, если n < 3.*/
/*Индексы элементов массива [1;n].*/
A = (int*) malloc((n + 1) * sizeof(int));/*Выделение памяти под массив целочисленных элементов. */
s = 0; c = 0; cp = 0;/*Сумма четных элементов; Количество чётных элементов; Количество положительных элементов массива. */
for (i = 1; i <= n; i++)/*Цикл по всем элементам массива A.*/
{
printf("A[%d]=", i);/*Вывод на экран номера текущего элемента массива. */
scanf("%d", A + i);/*Считывание с клавиатуры значения текущего элемента массива*/
if (A[i] % 2 == 0)/*Проверка текущего элемента массива на чётность. */
{
s += A[i];/*Увеличение суммы чётных элементов массива на значение текущего четного элемента массива. */
c++;/*Увеличение счетчика чётных элементов массива на единицу. */
}
if (A[i] > 0)/*Проверка текущего элемента массива на положительность. */
cp++;/*Увеличение счётчика положительных элементов на единицу. */
}
ap = A[1]; b = 1;/*Значение предыдущего элемента массива с нечётным индексом; Параметр b. 1 - Последовательность элементов массива с нечётными индексами возрастающая, 0 - убывающая. */
for (i = 3; i <= n; i += 2)/*Цикл по нечётным элементам массива. */
{
if (A[i] <= ap)/*Если текущий элемент массива с нечётным индексом меньше значения предыдущего: */
b = 0;/*Параметру b присваивается нулевое значение. */
ap = A[i];/*Значению предыдущего элемента массива с нечётным индексом присваивается значение текущего элемента массива с нечётным индексом. */
}
if (b == 1)/*Если последовательность элементов массива с нечетными индексами возрастающая. */
printf("%.3f", (float)s / c);/*Вывод на экран среднего арифметического чётных элементов массива. "(float)s" - явное приведение типа переменной s к типу float. Необходимо, для не целочисленного деления. */
else/*Если последовательность элементов массива с нечетными индексами убывающая. */
printf("%d", cp);/*Вывод на экран количества положительных элементов массива*/
free(A);/*Освобождение памяти, занимаемой динамическим массивом A*/
printf("\nНажмите клавишу Enter для завершения работы программы.");
getch();/*Приложение не завершит работы, пока не будет нажата клавиша Enter.*/
return 0;
}
Похожие вопросы
- Pycharm (Пожалуйста, помогите с написанием программы)
- помогите в написании программы на СИ
- Помогите в написании программы.
- Пожалуйста помогите в написании программы на С++
- помогите с написанием программ на паскале
- Помогите с написанием программы C++
- Помогите с написанием программы на языке Ассемблер, алгоритм знаю, вот только команды самого языка - не очень.
- Помогите с написанием программы
- помогите с написание программы плиз:
- Помогите в написании программы на С++