信息学奥赛一本通(C++版)

//1000 入门测试题目
#include <stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",a+b);
    return 0;
}

//1001 Hello,World!
#include <stdio.h>
int main(){
    printf("Hello,World!");
    return 0;
}
 

//1002 输出第二个整数
#include <stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d",b);
    return 0;
}

//1003 对齐输出
#include <stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%8d %8d %8d",a,b,c);
    return 0;
}

//1004 字符三角形
#include <stdio.h>
int main(){
    char s[2];
    scanf("%s",s);
    printf("  %c  \n %c%c%c \n%c%c%c%c%c",s[0],s[0],s[0],s[0],s[0],s[0],s[0],s[0],s[0]);
    return 0;
}

//1005 地球人口承载力估计
//c+d*a=x*a
//c+d*b=y*b
//d*(b-a)=y*b-x*a
//d=(y*b-x*a)/(b-a)
#include <stdio.h>
int main(){
    int x,a,y,b;
    scanf("%d%d%d%d",&x,&a,&y,&b);
    printf("%.2f",(y*b-x*a)*1.0/(b-a));
    return 0;
}

//1006 A+B问题
#include <stdio.h>
int main(){undefined
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",a+b);
    return 0;
}

//1007 计算(a+b)*c的值
#include <stdio.h>
int main(){undefined
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d",(a+b)*c);
    return 0;
}

//1008 计算(a+b)/c的值
#include <stdio.h>
int main(){undefined
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    printf("%d",(a+b)/c);
    return 0;
}

//1009 带余除法
#include <stdio.h>
int main(){undefined
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d %d",a/b,a%b);
    return 0;
}

//1010 计算分数的浮点数值
#include <stdio.h>
int main(){undefined
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%.9lf",a*1.0/b);
    return 0;
}

2017-10-19 21:14 AC该节内容

第二节 常量和变量

//1011 甲流疫情死亡率
//提交 未通过,仔细一看,漏了输出的%号 ,修改,提交AC
#include <stdio.h>
int main(){undefined
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%.3f%%",b*1.0/a*100);
    return 0;
}

//1012 计算多项式的值
//提交 未通过,一看,眼花了,读取的时候,少读了一个数,修改,提交AC
#include <stdio.h>
int main(){undefined
    double x,a,b,c,d;
    scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d);
    printf("%.7lf",a*x*x*x+b*x*x+c*x+d);
    return 0;
}

//1013 温度表达转化
#include <stdio.h>
int main(){undefined
    double f;
    scanf("%lf",&f);
    printf("%.5lf",5*(f-32)/9);
    return 0;
}

//1014 与圆相关的计算
#include <stdio.h>
#define pi 3.14159
int main(){undefined
    double r;
    scanf("%lf",&r);
    printf("%.4lf %.4lf %.4lf",2*r,2*pi*r,pi*r*r);
}

//1015 计算并联电阻的阻值
#include <stdio.h>
int main(){undefined
    double r1,r2;
    scanf("%lf%lf",&r1,&r2);
    printf("%.2lf",1/(1/r1+1/r2));
    return 0;
}

2017-10-19 21:40 AC该节内容

第三节 标准数据类型

//1016 整型数据类型存储空间大小
#include <stdio.h>
int main(){undefined
    printf("%d %d",sizeof(int),sizeof(short));
    return 0;
}

//1017 浮点型数据类型存储空间大小
#include <stdio.h>
int main(){undefined
    printf("%d %d",sizeof(float),sizeof(double));
    return 0;
}

//1018 其他数据类型存储空间大小
//请注意,因C语言里无bool变量,故以下代码采用C++方式编译提交
#include <stdio.h>
int main(){undefined
    printf("%d %d",sizeof(bool),sizeof(char));
    return 0;
}

//1019 浮点数向零舍入
#include <stdio.h>
int main(){undefined
    float f;
    scanf("%f",&f);
    printf("%d",(int)f);
    return 0;
}

//1020 打印ASCII码
#include <stdio.h>
int main(){undefined
    char s[2];
    scanf("%s",s);
    printf("%d",s[0]);
    return 0;
}

//1021 打印字符
#include <stdio.h>
int main(){undefined
    int a;
    scanf("%d",&a);
    printf("%c",a);
    return 0;
}
 

//1022 整型与布尔型的转换
#include <stdio.h>
int main(){undefined
    int a;
    scanf("%d",&a);
    if(a==0)printf("0");
    else printf("1");
    return 0;
}

//1023 Hello,World!的大小
//提交,未通过,怎么查都查不出问题,无奈,搜索网络,找到https://zhidao.baidu.com/question/1735639697759366947.html里面提示"Hello, World!"的逗号和'W'中间有个空格
//我的天,看来题目中提供的字符串,自己敲,错误百出,用拷贝粘贴,最理想。
//修改,提交AC
#include <stdio.h>
int main(){undefined
    printf("%d",sizeof("Hello, World!"));
    return 0;
}

2017-10-19 22:19 AC 该节内容

第四节 数据输入输出

//1024 保留3位小数的浮点数
#include <stdio.h>
int main(){undefined
    float f;
    scanf("%f",&f);
    printf("%.3f",f);
    return 0;
}

//1025 保留12位小数的浮点数
#include <stdio.h>
int main(){undefined
    double d;
    scanf("%lf",&d);
    printf("%.12lf",d);
    return 0;
}

//1026 空格分隔输出
#include <stdio.h>
int main(){undefined
    char a;
    int b;
    float c;
    double d;
    scanf("%c%d%f%lf",&a,&b,&c,&d);
    printf("%c %d %.6f %.6lf",a,b,c,d);
    return 0;
}

//1027 输出浮点数
//提交,未通过,搜索网络https://zhidao.baidu.com/question/2056380868273451467.html
//发现,还是理解的问题,读入的数据是双精度,本人写的是单精度 float f;输出是对双精度进行处理
#include <stdio.h>
int main(){undefined
    double f;//float f;
    scanf("%lf",&f);
    printf("%f\n%.5f\n%e\n%g",f,f,f,f);
    return 0;
}

//1028 字符菱形
#include <stdio.h>
int main(){undefined
    char c;
    scanf("%c",&c);
    printf("  %c\n",c);
    printf(" %c%c%c\n",c,c,c);
    printf("%c%c%c%c%c\n",c,c,c,c,c);
    printf(" %c%c%c\n",c,c,c);
    printf("  %c\n",c);
    return 0;
}

//1029 计算浮点数相除的余
#include <stdio.h>
int main(){undefined
    double a,b;
    scanf("%lf%lf",&a,&b);
    printf("%g",a-(int)(a/b)*b);//此处写成  printf("%.4lf",a-(int)(a/b)*b);
    return 0;
}

//1030 计算球的体积
#include <stdio.h>
int main(){undefined
    double r;
    scanf("%lf",&r);
    printf("%.2lf",4*3.14*r*r*r/3);
    return 0;
}

//1031 反向输出一个三位数
#include <stdio.h>
int main(){undefined
    int n;
    scanf("%d",&n);
    printf("%d%d%d",n%10,n/10%10,n/100);
    return 0;
}
 

//1032 大象喝水查
#include <stdio.h>
int main(){undefined
    int h,r;
    scanf("%d%d",&h,&r);
    printf("%d",(int)(20*10*10*10/(3.14*r*r*h))+1);//printf("%d",int(20*10*10*10/(3.14*r*r*h))+1);
    return 0;
}

//1033 计算线段长度
#include <stdio.h>
#include <math.h>
int main(){undefined
    double xa,ya,xb,yb;//float xa,ya,xb,yb;//int xa,ya,xb,yb;
    scanf("%lf%lf%lf%lf",&xa,&ya,&xb,&yb);//scanf("%f%f%f%f",&xa,&ya,&xb,&yb);//scanf("%d%d%d%d",&xa,&ya,&xb,&yb);
    printf("%.3lf",sqrt((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya)));//printf("%.3f",sqrt((xb-xa)*(xb-xa)+(yb-ya)*(yb-ya)));
    return 0;
}

//1034 计算三角形面积
#include <stdio.h>
#include <math.h>
int main(){undefined
    double x1,y1,x2,y2,x3,y3,a,b,c,p,s;//float x1,y1,x2,y2,x3,y3,a,b,c,p,s;
    scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);//scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
    a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
    c=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("%.2lf",s);//printf("%.2f",s);
    return 0;
}

//1035 等差数列末项计算
#include <stdio.h>
int main(){undefined
    int a1,a2,n;
    scanf("%d%d%d",&a1,&a2,&n);
    printf("%d",a1+(n-1)*(a2-a1));
    return 0;
}

//1036 A*B问题
#include <stdio.h>
int main(){undefined
    long long a,b;
    scanf("%lld%lld",&a,&b);
    printf("%lld",a*b);
    return 0;
}
 

//1037 计算2的幂
#include <stdio.h>
int main(){undefined
    int n,ans=1,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        ans*=2;
    printf("%d",ans);
    return 0;
}

//1038 苹果和虫子
#include <stdio.h>
int main(){undefined
    int n,x,y,ans;
    scanf("%d%d%d",&n,&x,&y);
    if(y%x==0)ans=n-y/x;
    else ans=n-y/x-1;
    if(ans<0)
        printf("0");
    else
        printf("%d",ans);
    return 0;
}

//1039 判断数正负
#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a>0)printf("positive");
    else if(a==0)printf("zero");
    else if(a<0)printf("negative");
    return 0;
}
 

//1040 输出绝对值
#include <stdio.h>
int main(){
    double f;
    scanf("%lf",&f);
    if(f<0)f=-f;
    printf("%.2lf",f);
    return 0;
}

//1041 奇偶数判断
#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    if(n%2==1)printf("odd");
    else printf("even");
    return 0;
}

//1042 奇偶ASCII值判断
#include <stdio.h>
int main(){
    char c;
    scanf("%c",&c);
    if(c%2==1)printf("YES");
    else printf("NO");
    return 0;
}

//1043 整数大小比较
#include <stdio.h>
int main(){
    int x,y;
    scanf("%d%d",&x,&y);
    if(x==y)printf("=");
    else if(x>y)printf(">");
    else printf("<");
    return 0;
}

//1044 判断是否为两位数
#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a/100==0&&a/10!=0)printf("1");
    else printf("0");
}

//1045 收集瓶盖赢大奖
#include <stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    if(a>=10||b>=20)printf("1");
    else printf("0");
    return 0;
}

//1046 判断一个数能否同时被3和5整除
#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    if(n%3==0&&n%5==0)printf("YES");
    else printf("NO");
    return 0;
}

//1047 判断能否被3,5,7整除
#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a%3==0&&a%5==0&&a%7==0)printf("3 5 7");
    else if(a%3==0&&a%5==0)printf("3 5");
    else if(a%3==0&&a%7==0)printf("3 7");
    else if(a%5==0&&a%7==0)printf("5 7");
    else if(a%3==0)printf("3");
    else if(a%5==0)printf("5");
    else if(a%7==0)printf("7");
    else printf("n");
    return 0;
}

//1048 有一门课不及格的学生
#include <stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    if((a<60&&b>=60)||(a>=60&&b<60))printf("1");
    else printf("0");
    return 0;
}

//1049 晶晶赴约会
#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a==2||a==4||a==6||a==7)printf("YES");
    else printf("NO");
    return 0;
}

//1050 骑车与走路
#include <stdio.h>
int main(){
    int a,t1,t2;
    scanf("%d",&a);
    t1=27+23+a/3.0;
    t2=a/1.2;
    if(t1==t2)printf("All");
    else if(t1<t2)printf("Bike");
    else if(t1>t2)printf("Walk");
    return 0;
}
 

//1051 分段函数
#include <stdio.h>
int main(){
    double x,y;
    scanf("%lf",&x);
    if(0<=x&&x<5)y=-x+2.5;
    else if(5<=x&&x<10)y=2-1.5*(x-3)*(x-3);
    else if(10<=x&&x<20)y=x/2-1.5;
    printf("%.3lf",y);
    return 0;
}

//1052 计算邮资
#include <stdio.h>
int main(){
    int a,sum=0;
    char s[2];
    scanf("%d%s",&a,s);
    if(a<=1000)sum+=8;
    else if(a>1000){
        sum+=8;
        a-=1000;
        sum+=a/500*4;
        if(a%500!=0)
            sum+=4;
    }
    if(s[0]=='y')sum+=5;
    printf("%d",sum);
}

//1053 最大数输出
#include <stdio.h>
int main(){
    int a,max;
    scanf("%d",&a);
    max=a;
    scanf("%d",&a);
    if(a>max)max=a;
    scanf("%d",&a);
    if(a>max)max=a;
    printf("%d",max);
    return 0;
}

//1054 三角形判断
#include <stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a+b>c&&a+c>b&&b+c>a)printf("yes");
    else printf("no");
    return 0;
}

//1055 判断闰年
#include <stdio.h>
int main(){
    int y;
    scanf("%d",&y);
    if(y%100==0)
        if(y%400==0)printf("Y");
        else printf("N");
    else if(y%4==0)printf("Y");
    else printf("N");
    return 0;
}
 

//1056 点和正方形的关系
#include <stdio.h>
int main(){
    int x,y;
    scanf("%d%d",&x,&y);
    if(-1<=x&&x<=1&&-1<=y&&y<=1)printf("yes");
    else printf("no");
    return 0;
}

//1057 简单计算器
#include <stdio.h>
int main(){
    int a,b;
    char s[2];
    scanf("%d%d%s",&a,&b,s);
    if(s[0]=='+')printf("%d",a+b);
    else if(s[0]=='-')printf("%d",a-b);
    else if(s[0]=='*')printf("%d",a*b);
    else if(s[0]=='/'){
        if(b==0)printf("Divided by zero!");//此处写成 if(b==0)printf("Invalid operator!");
        else printf("%d",a/b);
    }else printf("Invalid operator!");
    return 0;
}

//1058 求一元二次方程
#include <stdio.h>
#include <math.h>
#define eps 1e-8
int main(){
    double a,b,c,x1,x2,delta,t;
    scanf("%lf%lf%lf",&a,&b,&c);//此处写成 scanf("%d%d%d",&a,&b,&c); 低级错误
    delta=b*b-4*a*c;
    if(fabs(delta)<=eps)printf("x1=x2=%.5lf",-b/2/a);//delta==0 只有一个解
    else if(delta<=-eps)printf("No answer!");//delta<0 无解
    else{//delta>0有两解
        delta=fabs(delta);
        x1=(-b-sqrt(delta))/2/a,x2=(-b+sqrt(delta))/2/a;
        if(x1>x2)t=x1,x1=x2,x2=t;//注意打印,先小,后大
        printf("x1=%.5lf;x2=%.5lf",x1,x2);
    }
    return 0;
}

//1058 求一元二次方程
#include <stdio.h>
#include <math.h>
#define eps1 1e-10
#define eps2 1e-6
int main(){
    double a,b,c,x1,x2,g;//g2表示g的绝对值
    scanf("%lf%lf%lf",&a,&b,&c);
    g=b*b-4*a*c;
    if(g<0&&fabs(g)>eps1)printf("No answer!");
    else if(fabs(g)<eps1){
        x1=-b/(2*a);
        if(fabs(x1)<eps2)//判断是否是0
            printf("x1=x2=%.5lf",0);
        else
            printf("x1=x2=%.5lf",x1);
    }
    else{
        x1=(-b+sqrt(g))/(2*a);
        x2=(-b-sqrt(g))/(2*a);
        if(fabs(x1)<eps2)x1=fabs(x1);
        if(fabs(x2)<eps2)x2=fabs(x2);
        if(x1<x2)printf("x1=%.5lf;x2=%.5lf",x1,x2);
        else printf("x1=%.5lf;x2=%.5lf",x2,x1);//此处写成 printf("x2=%.5lf;x1=%.5lf",x2,x1);//此处写成 printf("x1=%.5lf;x2=%.5lf",x2,x1);
    }
    return 0;
}

//1059 求平均年龄
#include <stdio.h>
int main(){
    int n,a,i,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        sum+=a;
    }
    printf("%.2lf",sum*1.0/n);
    return 0;
}

//1060 均值
#include <stdio.h>
int main(){
    int n,i;
    double a,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%lf",&a);
        sum+=a;
    }
    printf("%.4lf",sum/n);
    return 0;
}

//1061 求整数的和与均值
#include <stdio.h>
int main(){
    int n,a,i,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        sum+=a;
    }
    printf("%d %.5lf",sum,sum*1.0/n);
    return 0;
}

//1062 最高的分数
#include <stdio.h>
int main(){
    int n,i,a,max=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(a>max)max=a;
    }
    printf("%d",max);
    return 0;
}

//1063 最大跨度值
#include <stdio.h>
int main(){
    int max=0,min=9999,n,a,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(a>max)max=a;
        if(a<min)min=a;
    }
    printf("%d",max-min);
    return 0;
}

//1064 奥运奖牌计数
#include <stdio.h>
int main(){
    int n,x,y,z,i,sum1=0,sum2=0,sum3=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d%d%d",&x,&y,&z);
        sum1+=x,sum2+=y,sum3+=z;
    }
    printf("%d %d %d %d\n",sum1,sum2,sum3,sum1+sum2+sum3);
    return 0;
}

//1065 奇数求和
#include <stdio.h>
int main(){
    int m,n,i,sum=0;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++){
        if(i%2==1)sum+=i;
    }
    printf("%d",sum);
    return 0;
}

//1066 满足条件的数累加
#include <stdio.h>
int main(){
    int m,n,i,sum=0;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
        if(i%17==0)
            sum+=i;
    printf("%d",sum);
    return 0;
}

//1067 整数的个数
#include <stdio.h>
int main(){
    int n,i,a,cnt1=0,cnt2=0,cnt3=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(a==1)cnt1++;
        else if(a==5)cnt2++;
        else if(a==10)cnt3++;
    }
    printf("%d\n%d\n%d",cnt1,cnt2,cnt3);
    return 0;
}

//1068 与指定数字相同的数的个数
#include <stdio.h>
int main(){
    int n,m,a,i,cnt=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(a==m)cnt++;
    }
    printf("%d",cnt);
    return 0;
}

//1069 乘方计算
#include <stdio.h>
int main(){
    int a,n,i,ans=1;
    scanf("%d%d",&a,&n);
    for(i=1;i<=n;i++)
        ans*=a;
    printf("%d",ans);
    return 0;
}

//1070 人口增长
#include <stdio.h>
int main(){
    int x,n,i;
    double ans;
    scanf("%d%d",&x,&n);
    ans=x;
    for(i=1;i<=n;i++)
        ans*=(1+0.001);
    printf("%.4lf",ans);
    return 0;
}

//1071 菲波那契数
#include <stdio.h>
int main(){
    int k,f1=1,f2=1,f3=1,i;// f3
    scanf("%d",&k);
    for(i=3;i<=k;i++){
        f3=f1+f2;
        f1=f2,f2=f3;
    }
    printf("%d",f3);
    return 0;
}

//1072 鸡尾酒疗法
#include <stdio.h>
int main(){
    int n,a,b,i;
    double ans1,ans2;
    scanf("%d",&n);
    scanf("%d%d",&a,&b);
    ans1=b*1.0/a;//ans1=b*1.0/a*100;
    for(i=2;i<=n;i++){
        scanf("%d%d",&a,&b);
        ans2=b*1.0/a;// ans2=b*1.0/a*100;
        if(ans1-ans2>0.05)printf("worse\n");//if(ans1-ans2>5)
        else if(ans2-ans1>0.05)printf("better\n");//else if(ans2-ans1>5)
        else printf("same\n");
    }
    return 0;
}

//1073 救援
#include <stdio.h>
#include <math.h>
int main(){
    int n,m,i;
    double x,y,t=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%lf%lf%d",&x,&y,&m);
        t+=sqrt(x*x+y*y)*2/50+m*1.5;
    }
    if(t>(int)t)printf("%d",(int)t+1);
    else printf("%d",(int)t);
    return 0;
}

//1074 津津的储蓄计划
#include <stdio.h>
int main(){
    int a,i,sheng=0,cun=0;//a读入消费,sheng剩下的钱,cun存在妈妈那的钱
    for(i=1;i<=12;i++){
        scanf("%d",&a);
        sheng+=300-a;
        if(sheng<0){
            printf("%d",-i);
            return 0;
        }
        cun+=sheng/100*100;
        sheng%=100;
    }
    printf("%d",sheng+cun/10*12);
    return 0;
}
 

//1074 津津的储蓄计划
#include <stdio.h>
int main(){
    int i,sheng=0,cun=0,a;
    for(i=1;i<=12;i++){
        scanf("%d",&a);
        sheng+=300-a;
        if(sheng<0){
            printf("%d",-i);
            return 0;
        }
        cun+=sheng/100*100;
        sheng%=100;
    }
    printf("%d",sheng+cun*12/10);
    return 0;
}

//1075 药房管理
#include <stdio.h>
int main(){
    int m,n,i,a,cnt=0;
    scanf("%d%d",&m,&n);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        if(m>=a){//此处写成 if(m>a)
            m-=a;
            cnt++;
        }
    }
    printf("%d",n-cnt);
    return 0;
}

//1076 正常血压
#include <stdio.h>
int main(){
    int n,a,b,i,cnt=0,max=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d%d",&a,&b);
        if(90<=a&&a<=140&&60<=b&&b<=90){
            cnt++;
            if(cnt>max)max=cnt;
        }else
            cnt=0;
    }
    printf("%d",max);
    return 0;
}

//1077 统计满足条件的4位数
#include <stdio.h>
int main(){
    int n,i,a,b,c,d,e,cnt=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%d",&e);
        a=e/1000;
        b=e%1000/100;
        c=e%1000%100/10;
        d=e%10;
        if(d>a+b+c)cnt++;
    }
    printf("%d",cnt);
    return 0;
}

//1078 求分数序列和
#include <stdio.h>
int main(){
    int n,p,q,i,t;
    double ans=0;
    scanf("%d",&n);
    p=1,q=2;
    for(i=1;i<=n;i++){
        ans+=q*1.0/p;
        t=p;
        p=q;
        q+=t;
    }
    printf("%.4lf",ans);
    return 0;
}

//1079 计算分数加减表达式的值
#include <stdio.h>
int main(){
    int n,i;
    double ans=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        if(i%2==1)ans+=1.0/i;
        else ans+=-1.0/i;
    printf("%.4lf",ans);
    return 0;
}

//1080 余数相同问题
#include <stdio.h>
int main(){
    int a,b,c,min=0,i;
    scanf("%d%d%d",&a,&b,&c);
    min=a>b?b:a;
    min=min>c?c:min;//找最小值
    for(i=2;i<=min;i++)
        if(a%i==b%i&&b%i==c%i){
            printf("%d",i);
            break;
        }
    return 0;
}

//1081 分苹果
#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    printf("%d",n*(n+1)/2);
    return 0;
}

//1082 求小数的某一位
#include <stdio.h>
int main(){
    int a,b,n,i;//商 余数
    scanf("%d%d%d",&a,&b,&n);
    for(i=1;i<=n-1;i++){
        a*=10;
        a%=b;
    }
    printf("%d",a*10/b);
    return 0;
}

//1082 求小数的某一位
#include <stdio.h>
int main(){
    int a,b,n,i,shang;
    scanf("%d%d%d",&a,&b,&n);
    for(i=1;i<=n;i++){
        a*=10;
        shang=a/b;
        a%=b;
    }
    printf("%d",shang);
    return 0;
}

//1083 计算星期几
#include <stdio.h>
int main(){
    int a,b,i,ans=1;
    scanf("%d%d",&a,&b);
    for(i=1;i<=b;i++)
        ans=(ans*a)%7;
    switch(ans){
        case 0:
            printf("Sunday");
            break;
        case 1:
            printf("Monday");
            break;
        case 2:
            printf("Tuesday");
            break;
        case 3:
            printf("Wednesday");
            break;
        case 4:
            printf("Thursday");
            break;
        case 5:
            printf("Friday");
            break;
        case 6:
            printf("Saturday");
            break;
    }
    return 0;
}

//1084 幂的末尾
#include <stdio.h>
int main(){
    int a,b,i,ans=1;
    scanf("%d%d",&a,&b);
    for(i=1;i<=b;i++)
        ans=(ans*a)%1000;
    if(ans>=100)printf("%d",ans);
    else if(10<=ans&&ans<100)printf("0%d",ans);
    else printf("00%d",ans);
    return 0;
}

第二节 while语句
#include <stdio.h>
int main(){
    int h,i;
    double sum=0,a;
    scanf("%d",&h);
    sum=h,a=1.0*h/2;
    for(i=2;i<=10;i++){
        sum+=a*2;
        a/=2;
    }
    printf("%g\n%g",sum,a);
    return 0;
}

//1086 角谷猜想
#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    while(n!=1){
        if(n%2==1){
            printf("%d*3+1=%d\n",n,n*3+1);
            n=n*3+1;
        }else{
            printf("%d/2=%d\n",n,n/2);
            n/=2;
        }
    }
    printf("End");
    return 0;
}

//1087 级数求和
#include <stdio.h>
int main(){
    int k,n=0;
    double sn=0;
    scanf("%d",&k);
    while(sn<=k){
        n++;
        sn+=1.0/n;
    }
    printf("%d",n);
    return 0;
}

//1088 分离整数的各个数
#include <stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    while(n){
        printf("%d ",n%10);
        n/=10;
    }
    return 0;
}

//1089 数字反转
#include <stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a==0){
        printf("0");
        return 0;
    }
    if(a<0){
        printf("-");
        a=-a;
    }
    while(a%10==0)a/=10;
    while(a){
        printf("%d",a%10);
        a/=10;
    }
    return 0;
}

//1090 含k个3的数
#include <stdio.h>
int main(){
    int m,k,a,cnt=0;
    scanf("%d%d",&m,&k);
    a=m;
    while(a){
        if(a%10==3)cnt++;
        a/=10;
    }
    if(cnt==k&&m%19==0)printf("YES");
    else printf("NO");
    return 0;
}

//1091 求阶乘的和
#include <stdio.h>
int f(int n){
    int i,ans=1;
    for(i=1;i<=n;i++)
        ans*=i;
    return ans;
}
int main(){
    int n,i,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        sum+=f(i);
    printf("%d",sum);
    return 0;
}

//1092 求出e的值
#include <stdio.h>
long long f(int n){
    int i;
    long long ans=1;
    for(i=1;i<=n;i++)
        ans*=i;
    return ans;
}
int main(){
    int n,i;
    double e=0;
    scanf("%d",&n);
    for(i=0;i<=n;i++)
        e+=1.0/f(i);
    printf("%.10lf",e);
    return 0;
}

//1093 计算多项式的值
#include <stdio.h>
int main(){
    int i,n;
    double x,ans=1,t=1;
    scanf("%lf%d",&x,&n);
    for(i=1;i<=n;i++){
        t*=x;
        ans+=t;
    }
    printf("%.2lf",ans);
    return 0;
}

//1094 与7无关的数
#include <stdio.h>
int f(int n){
    if(n%7==0)return 1;
    while(n){
        if(n%10==7)return 1;
        n/=10;
    }
    return 0;
}
int main(){
    int n,i,ans=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        if(f(i)==0)
            ans+=i*i;
    printf("%d",ans);
    return 0;
}

//1095 数1的个数
#include <stdio.h>
int f(int n){
    int cnt=0,i;
    while(n){
        if(n%10==1)cnt++;
        n/=10;
    }
    return cnt;
}
int main(){
    int i,cnt=0,n;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        cnt+=f(i);
    printf("%d",cnt);
    return 0;
}

//1096 数字统计
#include <stdio.h>
int f(int n){
    int i,cnt=0;
    while(n){
        if(n%10==2)cnt++;
        n/=10;
    }
    return cnt;
}
int main(){
    int left,right,i,ans=0,cnt=0;
    scanf("%d%d",&left,&right);
    for(i=left;i<=right;i++){
        cnt+=f(i);
    }
    printf("%d",cnt);
    return 0;
}

//1097 画矩形
#include <stdio.h>
int main(){
    int row,col,i,j,cmd;
    char s[2];
    scanf("%d%d%s%d",&row,&col,s,&cmd);
    if(cmd==1)
        for(i=1;i<=row;i++){
            for(j=1;j<=col;j++){
                printf("%c",s[0]);
            }
            printf("\n");
        }
    else{
        for(j=1;j<=col;j++)
            printf("%c",s[0]);
        printf("\n");
        for(i=2;i<=row-1;i++){
            for(j=1;j<=col;j++)
                if(j==1||j==col)
                    printf("%c",s[0]);
                else
                    printf(" ");
            printf("\n");
        }
        for(j=1;j<=col;j++)
            printf("%c",s[0]);
        printf("\n");
    }
    return 0;
}

//1098 质因数分解
#include <stdio.h>
int main(){
    int n,i;
    scanf("%d",&n);
    for(i=2;i*i<=n;i++)
        if(n%i==0){
            printf("%d",n/i);
            break;
        }
    return 0;
}

//1099 第n小的质数
#include <stdio.h>
int isPrime(int n){
    int i;
    if(n<2)return 0;
    if(n==2)return 1;
    for(i=2;i*i<=n;i++)
        if(n%i==0)return 0;
    return 1;
}
int main(){
    int n,k=2,cnt=1;
    scanf("%d",&n);
    while(cnt<n){
        k++;
        while(isPrime(k)==0)k++;
        cnt++;
    }
    printf("%d",k);
    return 0;
}

//1100 金币
#include <stdio.h>
int main(){
    int n,ans=0,i,d=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        d+=i;
        ans+=i*i;
        if(d>=n)
            break;
    }
    if(d==n)printf("%d",ans);
    else printf("%d",ans-(d-n)*i);
    return 0;
}

//1101 不定方程求解
#include <stdio.h>
int main(){
    int a,b,c,cnt=0,i,j;
    scanf("%d%d%d",&a,&b,&c);
    for(i=0;i<=c;i++)
        for(j=0;j<=c;j++)
            if(a*i+b*j==c)cnt++;
            else if(a*i+b*j>c)break;
    printf("%d",cnt);
    return 0;
}

//1102 与指定数字相同的数的个数
#include <stdio.h>
int a[110];
int main(){undefined
    int n,i,b,cnt=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    scanf("%d",&b);
    for(i=1;i<=n;i++)
        if(a[i]==b)cnt++;
    printf("%d",cnt);
    return 0;
}

//1103 陶陶摘苹果
#include <stdio.h>
int a[20];
int main(){undefined
    int i,b,cnt=0;
    for(i=1;i<=10;i++)
        scanf("%d",&a[i]);
    scanf("%d",&b);
    for(i=1;i<=10;i++)
        if(b+30>=a[i])
            cnt++;
    printf("%d",cnt);
    return 0;
}

//1104 计算书费
#include <stdio.h>
int main(){undefined
    double a[]={0,28.9,32.7,45.6,78,35,86.2,27.8,43,56,65},sum=0;
    int b;
    int i;
    for(i=1;i<=10;i++){undefined
        scanf("%d",&b);
        sum+=b*a[i];
    }
    printf("%.1lf",sum);
    return 0;
}

//1105 数组逆序重存放
#include <stdio.h>
int a[110];
int main(){undefined
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(i=n;i>=1;i--)
        printf("%d ",a[i]);
    return 0;
}

//1106 年龄与疾病
#include <stdio.h>
int main(){undefined
    int n,i,a,cnt1=0,cnt2=0,cnt3=0,cnt4=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&a);
        if(0<=a&&a<=18)cnt1++;
        else if(19<=a&&a<=35)cnt2++;
        else if(36<=a&&a<=60)cnt3++;
        else if(61<=a)cnt4++;
    }
    printf("%.2lf%%\n%.2lf%%\n%.2lf%%\n%.2lf%%",cnt1*1.0*100/n,cnt2*1.0*100/n,cnt3*1.0*100/n,cnt4*1.0*100/n);
    return 0;
}

//1107 校门外的树
#include <stdio.h>
#include <string.h>
int a[10100];
int main(){undefined
    int L,M,i,left,right,j,cnt=0;
    memset(a,0,sizeof(a));
    scanf("%d%d",&L,&M);
    for(i=1;i<=M;i++){undefined
        scanf("%d%d",&left,&right);
        for(j=left;j<=right;j++)
            a[j]=1;
    }
    for(i=0;i<=L;i++)
        if(a[i]==0)cnt++;
    printf("%d",cnt);
    return 0;
}

//1108 向量点积计算
#include <stdio.h>
int a[1010];
int main(){undefined
    int n,i,b,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&b);
        sum+=a[i]*b;
    }
    printf("%d",sum);
    return 0;
}

//1109 开关灯
#include <stdio.h>
#include <string.h>
int a[5010];
int main(){undefined
    int n,m,i,j,k;
    memset(a,0,sizeof(a));
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++){undefined
        k=1;
        while(k*i<=n){undefined
            a[k*i]=!a[k*i];
            k++;
        }
    }
    k=0;
    for(i=1;i<=n;i++)
        if(a[i]==1){undefined
            k++;
            if(k==1)printf("%d",i);
            else printf(",%d",i);
        }
    return 0;
}

//1110 查找特定的值
#include <stdio.h>
int a[10100];
int main(){undefined
    int n,x,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&a[i]);
    scanf("%d",&x);
    for(i=1;i<=n;i++)
        if(x==a[i])
            break;
    if(i==n+1)printf("-1");
    else printf("%d",i);
    return 0;
}

//1111 不高兴的津津
#include <stdio.h>
int main(){undefined
    int a,b,max=0,i,k;
    for(i=1;i<=7;i++){undefined
        scanf("%d%d",&a,&b);
        if(a+b>max){undefined
            max=a+b;
            k=i;
        }
    }
    if(max<=8)printf("0");
    else printf("%d",k);
    return 0;
}

//1112 最大值和最小值的差
#include <stdio.h>
int main(){undefined
    int n,i,min=99999,max=-99999,a;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&a);
        if(a<min)min=a;
        if(a>max)max=a;
    }
    printf("%d",max-min);
    return 0;
}

//1113 不与最大数相同的数字之和
#include <stdio.h>
int a[110];
int main(){undefined
    int n,i,max=-9999999,sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&a[i]);
        if(a[i]>max)max=a[i];
    }
    for(i=1;i<=n;i++)
        if(a[i]!=max)
            sum+=a[i];
    printf("%d",sum);
    return 0;
}

//1114 白细胞计数
#include <stdio.h>
double a[310];
int main(){undefined
    int n,i,j,k;
    double min=999999,max=-999999,sum=0,avr,delta;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%lf",&a[i]);
        if(a[i]<min)min=a[i],j=i;
        if(a[i]>max)max=a[i],k=i;
    }
    for(i=1;i<=n;i++)
        if(i==j||i==k)sum+=0;
        else sum+=a[i];
    avr=sum/(n-2);
    max=-999999;
    for(i=1;i<=n;i++)
        if(i==j||i==k)continue;
        else{undefined
            if(a[i]>=avr)delta=a[i]-avr;
            else delta=avr-a[i];
            if(delta>max)max=delta;
        }
    printf("%.2lf %.2lf",avr,max);//此处写成 printf("%.2lf %.2lf",avr,delta);
    return 0;
}

//1115 直方图
#include <stdio.h>
#include <string.h>
int a[10100],b[10100];
int main(){undefined
    int max=-999,n,i;
    memset(b,0,sizeof(b));
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&a[i]);
        if(a[i]>max)max=a[i];
        b[a[i]]++;
    }
    for(i=0;i<=max;i++)
        printf("%d\n",b[i]);
    return 0;
}

//1116 最长平台
#include <stdio.h>
int main(){undefined
    int n,i,a,b,cnt=1,max=-999999;
    scanf("%d",&n);
    scanf("%d",&a);
    for(i=2;i<=n;i++){undefined
        scanf("%d",&b);
        if(a==b){undefined
            cnt++;
            if(cnt>max)max=cnt;
        }else{undefined
            a=b;
            cnt=1;
        }
    }
    printf("%d",max);
    return 0;
}

//1117 整数去重
#include <stdio.h>
#include <string.h>
int a[20100],vis[20100];
int main(){undefined
    int n,i,j;
    memset(vis,0,sizeof(vis));
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d",&a[i]);
        if(vis[a[i]]==0){undefined
            printf("%d ",a[i]);
            vis[a[i]]=1;
        }
    }
    return 0;
}

//1118 铺地毯
#include <stdio.h>
#define maxn 10100
int a[maxn],b[maxn],g[maxn],k[maxn];
int main(){undefined
    int n,i,x,y;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
    scanf("%d%d",&x,&y);
    for(i=n;i>=1;i--)//逆序查找,自最上层地毯开始,逐层查找
        if(a[i]<=x&&x<=a[i]+g[i]&&b[i]<=y&&y<=b[i]+k[i]){undefined
            printf("%d",i);
            return 0;
        }
    printf("-1");
    return 0;
}

//1118 铺地毯
#include <stdio.h>
int a[100100],b[100100],g[100100],k[100100];
int main(){undefined
    int n,i,x,y;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d%d%d%d",&a[i],&b[i],&g[i],&k[i]);
    scanf("%d%d",&x,&y);
    for(i=n;i>=1;i--)
        if(a[i]<=x&&x<=a[i]+g[i]&&b[i]<=y&&y<=b[i]+k[i])
            break;
    if(i==0)printf("-1");
    else printf("%d",i);
    return 0;
}

//1119 矩阵交换行
#include <stdio.h>
int a[10][10];
int main(){undefined
    int i,j,m,n,t;
    for(i=1;i<=5;i++)
        for(j=1;j<=5;j++)
            scanf("%d",&a[i][j]);
    scanf("%d%d",&m,&n);
    for(j=1;j<=5;j++){undefined
        t=a[m][j];
        a[m][j]=a[n][j];
        a[n][j]=t;
    }
    for(i=1;i<=5;i++){undefined
        for(j=1;j<=5;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

//1120 同行列对角线的格
#include <stdio.h>
int main(){undefined
    int n,r,c,i,j,a,b;
    scanf("%d%d%d",&n,&r,&c);
    for(j=1;j<=n;j++)
        printf("(%d,%d) ",r,j);
    printf("\n");
    for(i=1;i<=n;i++)
        printf("(%d,%d) ",i,c);
    printf("\n");
    a=r,b=c;
    while(1<a&&1<b)a--,b--;//此处写成 while(1<a&&a<n&&1<b&&b<n)a--,b--;
    while(1<=a&&a<=n&&1<=b&&b<=n){undefined
        printf("(%d,%d) ",a,b);
        a++,b++;
    }
    printf("\n");
    a=r,b=c;
    while(a<n&&1<b)a++,b--;//此处写成  while(1<a&&a<n&&1<b&&b<n)a++,b--;
    while(1<=a&&a<=n&&1<=b&&b<=n){undefined
        printf("(%d,%d) ",a,b);
        a--,b++;
    }
    return 0;
}

//1121 计算矩阵边缘元素之和
#include <stdio.h>
int a[110][110];
int main(){undefined
    int m,n,i,j,sum=0;
    scanf("%d%d",&m,&n);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    for(j=1;j<=n;j++)
        sum+=a[1][j]+a[m][j];
    for(i=2;i<=m-1;i++)
        sum+=a[i][1]+a[i][n];
    printf("%d",sum);
    return 0;
}

//1122 计算鞍点
#include <stdio.h>
int a[10][10],r[10],c[10];//r[]一行最大值 c[]一列最大值
int main(){undefined
    int i,j,max,min,find=0;
    for(i=1;i<=5;i++)
        for(j=1;j<=5;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=5;i++){//行的最大值
        r[i]=-999999999;
        for(j=1;j<=5;j++)
            if(r[i]<a[i][j])r[i]=a[i][j];
    }
    for(j=1;j<=5;j++){//列的最小值
        c[j]=999999999;
        for(i=1;i<=5;i++)
            if(c[j]>a[i][j])c[j]=a[i][j];
    }
    for(i=1;i<=5;i++)
        for(j=1;j<=5;j++)
            if(a[i][j]==r[i]&&a[i][j]==c[j])find=1,printf("%d %d %d\n",i,j,a[i][j]);
    if(find==0)
        printf("not found");
    return 0;
}

//1123 图像相似度
#include <stdio.h>
int a[110][110],b[110][110];
int main(){undefined
    int m,n,i,j,cnt=0;
    scanf("%d%d",&m,&n);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            scanf("%d",&b[i][j]);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            if(a[i][j]==b[i][j])
                cnt++;
    printf("%.2lf",cnt*1.0*100/(m*n));
    return 0;
}

//1124 矩阵加法
#include <stdio.h>
int a[110][110],b[110][110];
int main(){undefined
    int n,m,i,j;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&b[i][j]);
    for(i=1;i<=n;i++){undefined
        for(j=1;j<=m;j++)
            printf("%d ",a[i][j]+b[i][j]);
        printf("\n");
    }
    return 0;
}

//1125 矩阵乘法
#include <stdio.h>
#include <string.h>
int a[110][110],b[110][110],c[110][110];
int main(){undefined
    int n,m,k,i,j,p;
    memset(c,0,sizeof(c));
    scanf("%d%d%d",&n,&m,&k);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(i=1;i<=m;i++)
        for(j=1;j<=k;j++)
            scanf("%d",&b[i][j]);
    for(i=1;i<=n;i++)
        for(j=1;j<=k;j++)
            for(p=1;p<=m;p++)
                c[i][j]+=a[i][p]*b[p][j];
    for(i=1;i<=n;i++){undefined
        for(j=1;j<=k;j++)
            printf("%d ",c[i][j]);
        printf("\n");
    }
    return 0;
}

//1126 矩阵转置
//行变列,列变行
#include <stdio.h>
int a[110][110],b[110][110];
int main(){undefined
    int m,n,i,j;
    scanf("%d%d",&m,&n);
    for(i=1;i<=m;i++)
        for(j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    for(j=1;j<=n;j++)
        for(i=1;i<=m;i++)
            b[j][i]=a[i][j];
    for(i=1;i<=n;i++){undefined
        for(j=1;j<=m;j++)
            printf("%d ",b[i][j]);
        printf("\n");
    }
    return 0;
}

//1127 图像旋转
#include <stdio.h>
int a[110][110],b[110][110];
int main(){undefined
    int n,m,i,j;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(j=1;j<=m;j++)
        for(i=1;i<=n;i++)
            b[j][i]=a[n-i+1][j];
    for(i=1;i<=m;i++){undefined
        for(j=1;j<=n;j++)
            printf("%d ",b[i][j]);
        printf("\n");
    }
    return 0;
}

//1128 图像模糊处理
#include <stdio.h>
int a[110][110],b[110][110];
int main(){undefined
    int n,m,i,j;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){undefined
            scanf("%d",&a[i][j]);
            b[i][j]=a[i][j];
        }
    for(i=2;i<=n-1;i++)
        for(j=2;j<=m-1;j++)
            b[i][j]=(int)(1.0*(a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1]+a[i][j])/5+0.5);//此处写成b[i][j]=(a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1]+a[i][j])/5;
    for(i=1;i<=n;i++){undefined
        for(j=1;j<=m;j++)
            printf("%d ",b[i][j]);
        printf("\n");
    }
    return 0;
}

2017-10-23 21:10 AC该节内容
#include <stdio.h>
int main(){undefined
    int cnt=0;
    char c;
    while((c=getchar())!=EOF){undefined
        if('0'<=c&&c<='9')cnt++;
    }
    printf("%d",cnt);
    return 0;
}

//1130 找第一个只出现一次的字符
#include <stdio.h>
#include <string.h>
int a[300];
char s[100100];
int main(){undefined
    int i,len;
    memset(a,0,sizeof(a));
    scanf("%s",s);
    len=strlen(s);
    for(i=0;i<len;i++)
        a[s[i]]++;
    for(i=0;i<len;i++)
        if(a[s[i]]==1){//此处写成 if(a[s[i]]==0) 查了会
            printf("%c",s[i]);
            break;
        }
    if(i==len)printf("no");
    return 0;
}

//1131 基因相关性
#include <stdio.h>
#include <string.h>
int main(){undefined
    double a;
    char b[510],c[510];
    int len,i,cnt=0;
    scanf("%lf%s%s",&a,b,c);
    len=strlen(b);
    for(i=0;i<len;i++)
        if(b[i]==c[i])cnt++;
    if(1.0*cnt/len>=a)printf("yes");//此处写成 if(1.0*cnt/len>=0.85)printf("yes");
    else printf("no");
    return 0;
}

//1132 石头剪子布
#include <stdio.h>
#include <string.h>
char a[20],b[20];
int win(char a[],char b[]){undefined
    if(strcmp(a,"Rock")==0&&strcmp(b,"Scissors")==0)return 1;
    if(strcmp(b,"Rock")==0&&strcmp(a,"Scissors")==0)return 2;
    if(strcmp(a,"Rock")==0&&strcmp(b,"Paper")==0)return 2;
    if(strcmp(b,"Rock")==0&&strcmp(a,"Paper")==0)return 1;
    if(strcmp(a,"Scissors")==0&&strcmp(b,"Paper")==0)return 1;
    if(strcmp(b,"Scissors")==0&&strcmp(a,"Paper")==0)return 2;
}
int main(){undefined
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%s%s",a,b);
        if(strcmp(a,b)==0)
            printf("Tie\n");
        else{undefined
            if(win(a,b)==1)printf("Player1\n");
            else printf("Player2\n");
        }
    }
    return 0;
}

//1133 输出亲朋字符串
#include <stdio.h>
#include <string.h>
char a[110],b[110];
int main(){undefined
    int i,len;
    scanf("%s",a);
    len=strlen(a);
    for(i=0;i<len-1;i++)
        b[i]=a[i]+a[i+1];
    b[len-1]=a[len-1]+a[0];
    b[len]='\0';
    printf("%s",b);
    return 0;
}

//1134 合法C标识符查
#include <stdio.h>
#include <string.h>
char s[30];
int main(){undefined
    int i,len;
    scanf("%s",s);
    if('0'<=s[0]&&s[0]<='9'){undefined
        printf("no");
        return 0;
    }
    len=strlen(s);
    for(i=0;i<len;i++)
        if(('0'<=s[i]&&s[i]<='9')||('a'<=s[i]&&s[i]<='z')||('A'<=s[i]&&s[i]<='Z')||s[i]=='_')
            continue;
        else{undefined
            printf("no");
            return 0;
        }
    printf("yes");
    return 0;
}

//1135 配对碱基链
#include <stdio.h>
#include <string.h>
char a[300],b[300];
char match(char c){undefined
    if(c=='A')return 'T';
    if(c=='T')return 'A';
    if(c=='G')return 'C';
    if(c=='C')return 'G';
}
int main(){undefined
    int i,len;
    scanf("%s",a);
    len=strlen(a);
    for(i=0;i<len;i++)
        b[i]=match(a[i]);
    b[i]='\0';
    printf("%s",b);
    return 0;
}

//1136 密码翻译
#include <stdio.h>
int main(){undefined
    char c;
    while((c=getchar())!=EOF){undefined
        if(c=='z')
            printf("a");
        else if(c=='Z')
            printf("A");
        else if(('a'<=c&&c<='y')||('A'<=c&&c<='Y'))
            printf("%c",c+1);
        else
            printf("%c",c);
    }
    return 0;
}

//1137 加密的病历单
#include <stdio.h>
#include <string.h>
char a[100],b[100];
int main(){undefined
    int i,len;
    scanf("%s",a);
    len=strlen(a);
    for(i=0;i<len;i++)//大小写反转
        if('a'<=a[i]&&a[i]<='z')a[i]=a[i]-'a'+'A';
        else a[i]=a[i]-'A'+'a';
    for(i=0;i<len;i++)//逆序存储
        b[i]=a[len-1-i];
    b[i]='\0';
    for(i=0;i<len;i++)//循环右移3位
        if('a'<=b[i]&&b[i]<='z')b[i]=(b[i]-'a'+3)%26+'a';
        else b[i]=(b[i]-'A'+3)%26+'A';
    printf("%s",b);
    return 0;
}

//1138 将字符串中的小写字母转换成大写字母
#include <stdio.h>
int main(){undefined
    char c;
    while((c=getchar())!=EOF){undefined
        if('a'<=c&&c<='z')printf("%c",c-'a'+'A');
        else printf("%c",c);    
    }
    return 0;
}

//1139 整理药名
#include <stdio.h>
#include <string.h>
char a[30];
int main(){undefined
    int n,i,len,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%s",a);
        len=strlen(a);
        if('a'<=a[0]&&a[0]<='z')//首字母
            a[0]=a[0]-'a'+'A';
        for(j=1;j<len;j++)
            if('A'<=a[j]&&a[j]<='Z')
                a[j]=a[j]-'A'+'a';
        printf("%s\n",a);
    }
    return 0;
}

//1140 验证子串
#include <stdio.h>
#include <string.h>
char a[210],b[210];
int main(){undefined
    int i,j,len1,len2,cnt;
    scanf("%s%s",a,b);
    len1=strlen(a),len2=strlen(b);
    if(len1<=len2){undefined
        for(i=0;i<len2;i++){undefined
            cnt=0;
            for(j=0;j<len1;j++)
                if(i+j<len2&&b[i+j]==a[j]){undefined
                    cnt++;
                    if(cnt==len1){undefined
                        printf("%s is substring of %s",a,b);
                        return 0;
                    }
                }
        }
    }else{undefined
        for(i=0;i<len1;i++){undefined
            cnt=0;
            for(j=0;j<len2;j++)
                if(i+j<len1&&a[i+j]==b[j]){undefined
                    cnt++;
                    if(cnt==len2){undefined
                        printf("%s is substring of %s",b,a);
                        return 0;
                    }
                }
        }
    }
    printf("No substring");
    return 0;
}

//1141 删除单词后缀
#include <stdio.h>
#include <string.h>
char a[40];
int main(){undefined
    int i,len;
    scanf("%s",a);
    len=strlen(a);
    if(a[len-1-1]=='e'&&a[len-1]=='r')a[len-1-1]='\0';
    else if(a[len-1-1]=='l'&&a[len-1]=='y')a[len-1-1]='\0';
    else if(a[len-1-2]=='i'&&a[len-1-1]=='n'&&a[len-1]=='g')a[len-1-2]='\0';
    printf("%s",a);
    return 0;
}

//1142 单词的长度
#include <stdio.h>
#include <string.h>
char a[1010];
int main(){undefined
    int len,k=0;
    while(scanf("%s",a)!=EOF){undefined
        len=strlen(a);
        if(k)printf(",");
        printf("%d",len);
        k++;
    }
    return 0;
}

//1143 最长最短单词
#include <stdio.h>
#include <string.h>
char a[30000],b[110],f[110],d[110];//f[]存最短字符串 d[]存最长字符串
int main(){undefined
    int len,k=0,min=999,max=-1,mini,maxi,i=0,len2;
    char c;
    while((c=getchar())!='\n')
        a[i++]=c;
    a[i]='\0',len=i;
    i=0;
    while(i<len){//单词解析
        k=0;
        while(i<len&&(a[i]==' '||a[i]==','))i++;
        while(i<len&&(a[i]!=' '&&a[i]!=','))b[k++]=a[i++];//此处写成 b[k++]=a[i];
        b[k]='\0',len2=strlen(b);
        if(len2>0&&len2<min){undefined
            min=len2;
            strcpy(f,b);
        }
        if(len2>0&&len2>max){undefined
            max=len2;
            strcpy(d,b);
        }
    }    
    printf("%s\n%s",d,f);
    return 0;
}

//1144 单词翻转
#include <stdio.h>
#include <string.h>
char a[510];
int main(){undefined
    char c;
    int k=0,len,i=0,cnt,j;
    while((c=getchar())!='\n')//while((c=getchar())!=EOF)
        a[k++]=c;
    a[k]='\0';
    len=strlen(a);
    while(i<len){undefined
        cnt=0;
        while(i<len&&a[i]==' ')i++;
        while(i+cnt<len&&a[i+cnt]!=' ')cnt++;
        for(j=0;j<cnt/2;j++){undefined
            c=a[i+j],a[i+j]=a[i+cnt-1-j],a[i+cnt-1-j]=c;
        }
        i+=cnt;
    }
    printf("%s",a);
    return 0;
}

//1145 字符串p型编码
#include <stdio.h>
#include <string.h>
char a[1100];
int main(){undefined
    int i=0,len,cnt;
    scanf("%s",a);
    len=strlen(a);
    while(i<len){undefined
        cnt=0;
        while(i+cnt<len&&a[i]==a[i+cnt])cnt++;
        printf("%d%d",cnt,a[i]-'0');
        i+=cnt;
    }
    return 0;
}

//1146 判断字符串是否为回文
#include <stdio.h>
#include <string.h>
char a[110];
int main(){undefined
    int i,len;
    scanf("%s",a);
    len=strlen(a);
    for(i=0;i<len/2;i++)
        if(a[i]==a[len-1-i])continue;
        else{undefined
            printf("no");
            return 0;
        }
    printf("yes");
    return 0;
}

//1147 最高分数的学生姓名
#include <stdio.h>
struct node{undefined
    int score;
    char name[30];
}stu[110];
int main(){undefined
    int n,i,k,max=-1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){undefined
        scanf("%d%s",&stu[i].score,stu[i].name);
        if(stu[i].score>max)k=i,max=stu[i].score;
    }
    printf("%s",stu[k].name);
    return 0;
}

//1148 连续出现的字符
#include <stdio.h>
#include <string.h>
char b[1100];
int main(){undefined
    int k,i=0,len,cnt;
    scanf("%d%s",&k,b);
    len=strlen(b);
    while(i<len){undefined
        cnt=0;
        while(i+cnt<len&&b[i+cnt]==b[i])cnt++;
        if(cnt>=k){undefined
            printf("%c",b[i]);
            break;
        }
        i+=cnt;
    }
    if(cnt<k)//漏了该判断
        printf("No");
    return 0;
}

//1149 最长单词2
#include <stdio.h>
#include <string.h>
char a[510],b[510];
int main(){undefined
    int len,max=-1;
    while(scanf("%s",a)!=EOF){undefined
        len=strlen(a);
        if(a[len-1]=='.')a[len-1]='\0',len=strlen(a);
        if(len>max)max=len,strcpy(b,a);
    }
    printf("%s",b);
    return 0;
}

2020-2-3(敬请期待)

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息学奥赛一本通C》是一本电子书,专为准备参加信息学竞赛的学生而编写的。该书内容丰富,系统性强,对信息学相关知识进行了全面的介绍和解析。它旨在帮助读者全面了解和掌握信息学的基本概念、算法设计和编程技巧。 《信息学奥赛一本通C》的主要特点是: 1.全面的知识点覆盖:该书涵盖了信息学竞赛常见的核心知识点,包括数据结构、算法设计与分析、图论、动态规划等。读者可以系统地学习每个知识点,掌握其原理和应用方法。 2.详细的解题思路:书中为每个知识点的典型题目都提供了详细的解题思路和步骤分析。这些解题思路能够帮助读者理解算法的设计过程,并能够应用到不同的实际问题中。 3.丰富的编程实例:书中配有丰富的编程实例,涵盖了各个知识点的不同应用场景。读者可以通过这些实例来巩固所学的知识,并提升编程能力。 4.易于阅读和学习:该电子书采用清晰简洁的语言,结构也很清晰,方便读者进行阅读和学习。同时,配有大量图表和示意图,便于理解和记忆。 总之,《信息学奥赛一本通C》是一本理论与实践相结合的电子书,适合参加信息学竞赛的学生使用。它不仅提供了全面的理论知识,还提供了实际问题的解决思路和实例,帮助读者系统地学习和掌握信息学竞赛所需的基本知识和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值