C/C++

Срочно нужна помощь Найти произведение элементов кратных 7

Найти произведение элементов кратных 7 и минимальный элемент среди этих элементов целочисленного массива из 20 элементов
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
const int size = 20;
int A[size];
srand(time(NULL));
for(int x = 0; x < size; x++)
{
A[x] = rand() % 14 + 1;
printf("%d ", A[x]);
}
printf("\n\n");
int P = 1;
int min = 21; /* задаётся больше возможного найдённого */
for(int x = 0; x < size; x++)
{
if(A[x] % 7 == 0)
{
P *= A[x];
if(A[x] < min) min = A[x];
}
}

printf("Произведение элементов, кратных семи равно %d\n", P);
printf("Минимальное число среди этих элементов равно %d\n", min);

return 0;
}
Дмитрий Любимчик
Дмитрий Любимчик
79 081
Лучший ответ
Дмитрий Любимчик Один нюанс!
Найти минимальное среди кратных семи или всего из 20 чисел?
Я нашёл, кратных семи.
В противном случае цикл нужно поменять так:
for(int x = 0; x < size; x++)
{
if(A[x] % 7 == 0)
{
P *= A[x];
}
if(A[x] < min) min = A[x];
}
Константин Kostya Спасибо, спонсор моего зачета ❤️
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <utility>
#include <iomanip>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
using namespace std;
pair<double, long> fn(long num, long* box, const size_t length) {
pair<long long, long> data{ 1.0, 0 };
for (auto i = 0U; i < length; ++i) {
if (0 == box[i] % num) {
data.first *= box[i];
if (box[i] > data.second) data.second = box[i];
}
}
return data;
}
void random_fill(long a, long b, long* box, const size_t length) {
if (a > b) swap(a, b);
for (auto i = 0U; i < length; ++i) box[i] = RAND(a, b);
}
void show(long* box, const size_t length, const streamsize w) {
for (auto i = 0U; i < length; ++i) cout << ' ' << setw(w) << box[i];
puts("");
}
int main() {
srand(unsigned(time(nullptr)));
const auto length = 20U;
long box[length];
random_fill(7, 50, box, length);
show(box, length, 3U);
auto[product, max] = fn(7, box, length);
cout << "Product: " << product << '\n';
cout << "Max: " << max << '\n';
}
II
Iveriy Irodi
78 293
Ну на с++, массив?
Так:
int n;
cin>>n;
int a[20],s=1,m=INT_MIN;
for(int i=0;i<=20;i++){
cin>>a[i];
While(a[i]/7==0){
if (a[i]>m)m=a[i];s*=a[i];}
Cout<<m<<' '<<s;так, если не будет работать напиши s=0