一个普通的大一学生的c语言题目,救救孩子吧

给定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