变态最大值
2014-04-15 14:24
239 查看
/* * 程序的版权和版本声明部分: * Copyright (c) 2014,郑州大学SIAS国际学院 * 作 者: 王 杰 * 完成日期:2014 年 4 月 15 日 * * 对任务及求解方法的描述部分: * 输入描述: 略或见注释、总结 * 问题描述: 略或见注释、总结 * 程序输出: 略或见注释、总结 * 问题分析: 略或见注释、总结 * 算法设计: 略或见注释、总结 */ #include<stdio.h> int max(int q,int w,int e) { int z; z=q>w? q:w; z=z>e? z:e; return z; } int min(int q,int w,int e) { int z; z=q<w? q:w; z=z<e? z:e; return z; } int main() { int n,a[10000],i,j,count,max_i,min_i,p; while(scanf("%d",&n)!=EOF){ count=1; p=j=max_i=min_i=0; //其实p初值设为0,严格来说是错误的,如第三组测试数据 for(i=0;i<n;i++) //可以把p的初值设为-2147483648(codeblocks中int型的最小值) scanf("%d",&a[i]); for(i=0;i<n/3;i++){ if(count%2){ max_i=max(a[j],a[j+1],a[j+2]); count++; j+=3; p=p>max_i? p:max_i; } else{ min_i=min(a[j],a[j+1],a[j+2]); count++; j+=3; p=p>min_i? p:min_i; } //p=max_i>min_i? max_i:min_i; //放到for外面不对,如第二组测试数据 } printf("%d\n",p); } return 0; }
运行结果:
总结:见注释,p的初值设为0可以AC,但不算完美。设为codeblocks中int的最小值,可以处理数据,但是好像不是万全之策, 不过也不失为一种办法---“只关心要处理的数据”
九九乘法表:
#include<stdio.h> int main() { int n,m,i,j; scanf("%d",&n); while(n--){ scanf("%d",&m); for(i=1;i<=m;i++){ for(j=i;j<=9;j++){ printf("%d*%d=%d ",i,j,i*j); } printf("\n"); } } return 0; }
477T A+B(3)
#include<stdio.h> #include<math.h> int main() { int t; float a,b,c; scanf("%d",&t); while(t--){ scanf("%f%f%f",&a,&b,&c); if(fabs(a+b-c)<0.00001) printf("Yes\n"); else printf("No\n"); } return 0; }
458T 小光棍数 最烦这种题了。。。。。。。
#include<stdio.h> int main() { long long t,m; scanf("%lld",&t); while(t--){ scanf("%lld",&m); printf("%lld\n",471+(m-1)*1000); } return 0; }
399T 整除个数 开始想着i++循环 计数,后来一想i+=b减少运算,再一想,不用!直接n/b 完事。。。。
#include<stdio.h> int main() { int n,b; while(scanf("%d%d",&n,&b)!=EOF){ printf("%d\n",n/b); } return 0; }