首页 > 代码库 > *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. 数字分类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。