变态最大值

来源:互联网 发布:mac如何用阿里旺旺 编辑:程序博客网 时间:2024/06/08 19:03
/*  * 程序的版权和版本声明部分:  * 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;}


0 0
原创粉丝点击