C/C++

Задание с массивом

ЗАДАНИЕ . Создать одномерный массив А целых значений.
Реализовать обработку массива, как указано в варианте. Длина массива
N<=20. Входные данные задать самостоятельно.

Само задание - Определить минимальное значение среди четных значений элементов
массива
круто
Vladimir Danilov
Vladimir Danilov
6 421
Лучший ответ
И на каком языке? С или C++?
#include <stdio.h>
#include <stdlib.h>

int main()
{
const int size = 20;
int N;
do
{
printf("Введите размер массива до %d элементов: ", size);
scanf("%d", &N);
} while(N<1 || N > size);
int * A;
A = (int*) malloc(N * sizeof(int));

printf("Введите %d значений массива: ", N);
for(int x = 0; x < N; x++)
{
scanf("%d", &A[x]);
}

int find_min = 0, min;
for(int x = 0; x < N; x++)
{
if(find_min == 0)
{
if(A[x] % 2 == 0)
{
min = A[x];
find_min = 1;
}
}
else
{
if(A[x] < min) min = A[x];
}
}

if(find_min)
{
printf("Минимальное значение равно %d.\n",min);
}
else
{
printf("Значение не найдено. \n");
}

if(A != NULL)
{
free(A);
A = (int*) NULL;
}
return 0;
}
Чтобы элементы вручную не вводить -пусть rand() работает.
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int i, j, k, l, min, N;
while (1)
{
cout << "N: ";
cin >> N;
j = k = 0;
int *A = new int[N];
srand(time(nullptr));
for (i = 0; i < N; i++)
{
j++;
A[i] = rand();
if (A[i] % 2 == 0 && k == 0)
{
k++;
l = i;
min = A[i];
}
cout << setw(11) << A[i];
if (j == 4)
{
j = 0;
cout << endl;
}
}
if (j)
cout << endl;
if (k)
{
for (i = l; i < N; i++)
if (A[i] % 2 == 0 && A[i] < min) min = A[i];
cout << "min = " << min << endl;
delete[] A;
}
else cout << "No even numbers" << endl;
}
}
Миразим Азимов
Миразим Азимов
66 572
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define N 20
int main()
{
int min=N*2,*A=(int*)malloc(N*sizeof(int));
if(!A)
{
printf("\nError. Array not created.");
exit(1);
}
srand(time(NULL));
printf("Array A:\n");
for(int i = 0; i < 20; i++)
{
A[i] = 1 + rand()%N;
printf(" %d",A[i]);
if(A[i]%2 == 0 && min > A[i]) min = A[i];
}
printf("\n\nMinimal even number is %d",min);
free(A);
fflush(stdout);
sleep(10);
return 0;
}