首页 > 代码库 > *1012. 数字分类

*1012. 数字分类

 1 /* 2  * Main.c 3  * 1012. 数字分类 4  *  Created on: 2014年8月30日 5  *      Author: Boomkeeper 6  ********部分通过****** 7  */ 8  9 #include <stdio.h>10 #include <math.h>11 12 void A1(int in,int* sum){13 14     if(in%5==0&&in%2==0)15         (*sum)+=in;16 }17 18 void A2(int in,int* sum,int* count){19 20     if(in%5==1){21         (*sum)+=pow(-1,*count)*in;22         (*count)++;23     }24 }25 26 void A3(int in,int* count){27 28     if(in%5==2)29         (*count)++;30 }31 32 void A4(int in,int* sum,int* count){33 34     if(in%5==3){35         (*count)++;36         (*sum)+=in;37     }38 }39 40 void A5(int in,int* max){41 42     if(in%5==4)43         if(*max<in)44             *max=in;45 }46 47 void output(int* sum1,int* sum2,int* count3,int* sum4,int* count4,int* max){48     if(*sum1==0)49         printf("N ");50     else51         printf("%d ",*sum1);52 53     /*交错求和结果可能为0,输出N还是0有待判断*/54     if(*sum2==0)55         printf("N ");56     else57         printf("%d ",*sum2);58 59     if(*count3==0)60         printf("N ");61     else62         printf("%d ",*count3);63 64     if(*count4==0)65         printf("N ");66     else67         printf("%.1f ",(float)(*sum4)/(*count4));68 69     if(*max==0)70         printf("N");71     else72         printf("%d\n",*max);73 }74 75 int main(void){76 77     int in;78     int n;//题目中的n79     int i;80     int sum1=0,sum2=0,sum4=0;//A1、A2、A4中的sum81     int count2=0,count3=0,count4=0;//A2、A3、A4中统计个数82     int max=0;//A5中记录最大数83 84     scanf("%d",&n);85 86     for(i=0;i<n;i++){87         scanf("%d",&in);88         A1(in,&sum1);89         A2(in,&sum2,&count2);90         A3(in,&count3);91         A4(in,&sum4,&count4);92         A5(in,&max);93     }94 95     output(&sum1,&sum2,&count3,&sum4,&count4,&max);96 97     return 0;98 }

 

这个题目有点时间长了,当时做完没提交,一下子想不起来当时的思路,先发布出来吧,不然回头又忘了。

 

题目链接:

http://pat.zju.edu.cn/contests/pat-b-practise/1012

 

 

.

*1012. 数字分类