给定n(n是偶数,且n≤100)个正整数,所有正整数均≤10000;从前往后依次遍历这个数组,每两个为一组进行处理,若一组中的任意一个元素能被3或者5整除,则交换这两个元素的位置;否则不动;全部处理完成后,逆序输出整个数组。我想用C语言来实现
时间: 2024-05-06 08:20:55 浏览: 210
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,我理解了您的要求。以下是 C 语言实现代码:
```
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (int i = 0; i < n - 1; i += 2) {
if (arr[i] % 3 == 0 || arr[i] % 5 == 0 || arr[i + 1] % 3 == 0 || arr[i + 1] % 5 == 0) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
for (int i = n - 1; i >= 0; i--) {
printf("%d ", arr[i]);
}
return 0;
}
```
解释一下代码:
1. 首先输入 n 和数组 arr;
2. 循环遍历数组 arr,输入每个正整数;
3. 循环遍历数组 arr,每两个为一组进行处理,判断是否有任意一个元素能被 3 或 5 整除,如果可以则交换这两个元素的位置;
4. 最后再循环遍历数组 arr,逆序输出整个数组。
以上代码可以实现您所要求的功能。如果有其他问题,请尽管问我。
阅读全文