Как проверить кратность числа в цикле (не используя if)
Дан массив A размера N и целое число K (1 ≤ K ≤ N). Вывести элементы массива с порядковыми номерами, кратными K: AK, A2·K, A3·K, … . Условный оператор не использовать.
Не могу сообразить как вывести номера массива, которые кратны к, не используя Условный оператор if
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
using namespace std;
int main() {
Setlocale(LC_ALL, "rus";
int n, k, i;
int *A=new int[n];
cout << "Введите размер массива: ";
cin >> n;
cout << "Введите целое число к: ";
cin >> k;
cout << "\nМассив: " << endl;
srand(time(nullptr));
for (i=0; i<n; i++){
A[i]=1+rand()%10;
cout << "arr["<< i <<"] = " << A[i] << endl;
}
cout << "\nМассив с элементами кратными к: " << endl;
for(i=0; i<n; i+=k)
cout<<A[i]<<endl;
getchar();
return 0;
}
Программа по итогу выдает рандомные числа в конце
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
У вас создается массив какого-то неизвестного размера
int n, k, i;
int *A=new int[n]; // Чему в этот момент равно n?
И только потом вы это n указываете.
cout << "Введите размер массива: ";
cin >> n;
Получается как минимум UB.
Сначала выясните, какой массив вам нужен, а уже потом его создавайте.