C/C++

Найти сумму и количество случайных элементов последовательности размером n, кратных числу k

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
srand(time(NULL)); /* чтобы значания были случайными */
rand(); /* так рекомендуют пропускать 1 раз функцию */
int n;
do
{
printf("Введите число элементов последовательности: ");
scanf("%d", &n);
} while(n < 1);
int * A;
A = (int*) malloc(sizeof(int) * n); /* выделение памяти */

int k;
printf("Введите число k: ");
scanf("%d", &k);

int sum = 0, q = 0; /* сумма и количество */
for(int x = 0; x < n; x++)
{
A[x] = rand() % 21 - 10; /* геренация значений в диапазоне [-10;10] */
printf("%d ", A[x]); /* вывести на экран */
if(A[x] % k == 0) /* случай кратности */
{
sum += A[x]; /* добавить к сумме */
q++; /* увеличить количество на 1 */
}
}
printf("\n\n");

printf("Сумма равна %d.\n", sum);
printf("Количество элементов -- %d.\n", q);

if( A != (int*) NULL )
{
free(A); /* освобождение памяти */
A = (int*) NULL;
}

return 0;
}
Юрий Карягин
Юрий Карягин
65 064
Лучший ответ
#include
#include
using namespace std;

int main()
{
setlocale(LC_ALL, "rus");

int n, k, count(0), sum(0);

cout << "Введите N: ";
cin >> n;

cout << "Введите K: ";
cin >> k;

for (int i = 0; i < n; i++) {
int randomNum = rand();
if (randomNum % k == 0) {
sum += randomNum;
count++;
}
}
cout << "Сумма = " << sum << endl << "Количество цифр = " << count << endl;
}

Похожие вопросы