Как узнать какой номер в массиве присваивается найденному кратному числу? - C (СИ)
Формулировка задачи:
Например, в одномерном массиве из 7 чисел нужно найти числа кратные 5 и 3, и Походу бред написал, но не могу понять как это происходит
любые
из них поменять местами, как узнать? Может так?!A[i]=kratniy_5; kratniy_5=A[i]; A[i]=kratniy_3; kratniy_3=A[i];
Решение задачи: «Как узнать какой номер в массиве присваивается найденному кратному числу?»
textual
Листинг программы
#include <stdio.h>
int main() {
int array[7] = {5, 10, 15, 20, 25, 30, 35};
int first = -1;
int second = -1;
int tmp;
int i;
for (i = 0; (i < 7) && ((first == -1) || (second == -1)); ++i) {
if ((array[i] % 3 == 0) && (array[i] % 5 == 0)) {
if (first == -1) {
first = i;
}
else {
second = i;
}
}
}
if ((first != -1) && (second != -1)) {
tmp = array[first];
array[first] = array[second];
array[second] = tmp;
}
for (i = 0; i < 7; ++i) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
Объяснение кода листинга программы
- Объявлен массив из 7 элементов, инициализированных значениями от 5 до 35 с шагом 5.
- В цикле перебираются все элементы массива.
- Если текущий элемент кратен и 3, и 5, то:
- Если это первый такой элемент, то он присваивается переменной first.
- Если это второй такой элемент, то он присваивается переменной second.
- Если оба элемента (first и second) найдены, то они меняются местами.
- Выводится на экран весь массив.
- Возвращается 0, заканчивая работу программы.