原PAT网站用户可在 https://patest.cn/bind_old_pat_user 页面绑定至拼题A账号。绑定后,原PAT网站的提交将被合并至拼题A网站用户的对应题目集中。
1012 数字分类 (20 分)
思路:主要注意a2,要确定a2是最后的结果是0还是直接没有进入循环。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
int i,j;
int a1=0,a2=0,a3=0,a4=0,a5=0;
int num[n];
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
int flag=1;
int tim=0;
for(i=0;i<n;i++)
{
if(num[i]%5==0&&num[i]%2==0)
{
a1=a1+num[i];
}
if(num[i]%5==1)
{
if(flag%2!=0)
a2=a2+num[i];
else a2=a2-num[i];
flag++;
}
if(num[i]%5==2)
{
a3++;
}
if(num[i]%5==3)
{
tim++;
a4=a4+num[i];
}
if(num[i]%5==4)
{
if(num[i]>=a5)
{
a5=num[i];
}
}
}
if(a1==0)
{
printf("N ");
}
else printf("%d ",a1);
if(a2==0&&flag==1)
{
printf("N ");
}
else printf("%d ",a2);
if(a3==0)
{
printf("N ");
}
else printf("%d ",a3);
if(a4==0)
{
printf("N ");
}
else printf("%.1f ",(double)a4/(double)tim);
if(a5==0)
{
printf("N");
}
else printf("%d",a5);
return 0;
}
本文详细解析了PAT竞赛中一道关于数字分类的算法题目。通过C语言实现,对输入的整数进行分类处理,包括计算能同时被2和5整除的数的总和、按奇数次序加减被5除余1的数、计数被5除余2的数、计算被5除余3的数的平均值以及找到被5除余4的最大数。文章提供了完整的代码实现和关键步骤说明。
860

被折叠的 条评论
为什么被折叠?



