给定n(n是偶数,且n≤100)个正整数,所有正整数均≤10000;从前往后依次遍历这个数组,每两个为一组进行处理,若一组中的任意一个元素能被3或者5整除,则交换这两个元素的位置;否则不动;全部处理完成后,逆序输出整个数组。
例如给定序列: 99 35 83 38 , 处理完成后得到:38 83 99 35
给定序列: 6 7 3 4 ,处理完成后得到:3 4 6 7
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,n,a[10005],t;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
if(i%2==1){
if((a[i]%3==0)||(a[i]%5==0)||(a[i-1]%3==0)||(a[i-1]%5==0)){
t=a[i];
a[i]=a[i-1];
a[i-1]=t;
}
}
}
for(i=n-1;i>=0;i--){
printf("%d ",a[i]);
}
}
void main()
{
int a[100] = { 0 };
int i,n,t;
while (true)
{
scanf("%d", &n);
if (n>0 && n<=100 && n % 2 != 0)
printf("必须输入100以内的正偶数,请重新输入。\n");
else
break;
}
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
for (i = 0; i < n; i += 2)
{
if (a[i] % 3 == 0 || a[i] % 5 == 0 || a[i + 1] % 3 == 0 || a[i+1]%5==0)
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
for (i = n - 1; i >= 0; i--)
printf("%d ", a[i]);
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632