第一部分 第五章 数组 1102-1149

1102 与指定数字相同的数的个数

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
    int N,m,s=0,a;
    scanf("%d %d",&N,&m);
    int i;
    for(i=1;i<=N;++i)
    {
        scanf("%d",&a);
        if(a==m)
            s=s+1;
    }
    printf("%d",s);
    return 0;
}

1103 陶陶摘苹果

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[15];
int main()
{
    int h,s=0,l;
    for(int i=1;i<=10;++i)
    {
        scanf("%d",&x[i]);
    }
    scanf("%d",&l);
    for(int i=1;i<=10;++i)
    {
        if(l+30>=x[i])
            s++;
    }
    printf("%d",s);
    return 0;
}

1104 计算书费

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[15];
double y[15];
int main()
{
    double n,money=0;
    for(int i=1;i<=10;++i)
    {
        scanf("%d",&x[i]);
    }
    y[1]=28.9;
    y[2]=32.7;
    y[3]=45.6;
    y[4]=78;
    y[5]=35;
    y[6]=86.2;
    y[7]=27.8;
    y[8]=43;
    y[9]=56;
    y[10]=65;
    for(int i=1;i<=10;++i)
    {
        n=x[i]*y[i];
        money+=n;
        //printf("%lf ",money);
    }
    printf("%.1lf",money);
    return 0;
}

1105 数组逆序重存放

#include <cstdio>
using namespace std;
int x[105];
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);
    }
    int i=n;
    while(i>=1)
    {
        printf("%d ",x[i]);
        i--;
    }
    return 0;
}

1106 年龄与疾病

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[105];
int main()
{
    int n,age1=0,age2=0,age3=0,age4=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);
    }
    for(int i=1;i<=n;i++)
    {
        if(x[i]>=0&&x[i]<=18)
        {
            age1++;
        } 
        else
        {
            if(x[i]>=19&&x[i]<=35)
            {
                age2++;
            } 
            else
            {
                if(x[i]>=36&&x[i]<=60)
                {
                    age3++;
                } 
                else
                {
                    if(x[i]>=61)
                    {
                        age4++;
                    }   
                }
            }
        }
    }
    double b1=age1/double(n);
    double b2=age2/double(n);
    double b3=age3/double(n);
    double b4=age4/double(n);
    printf("%.2lf%%\n%.2lf%%\n%.2lf%%\n%.2lf%%",b1*100,b2*100,b3*100,b4*100);
    return 0;
}

1107 校门外的树

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[10001];
int main()
{
    int L,M,m,n,s=0;
    scanf("%d %d",&L,&M);
    for(int i=1;i<=M;++i)
    {
        scanf("%d %d",&m,&n);
        for(int j=m;j<=n;j++)
        {
            a[j]=1;
        }
    }
    for(int i=0;i<=L;++i)
    {
        if(!a[i])
            s++;
    }
    printf("%d",s);
    return 0;
}

1108 向量点积计算

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[1005];
int b[1005];
int main()
{
    int n,k,j=0;
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n;++i)
    {
        scanf("%d",&b[i]);
    }
    for(int i=1;i<=n;++i)
    {
        k=a[i]*b[i];
        j+=k;
    }
    printf("%d",j);
    return 0;
}

1109 开关灯

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int light[5005];
int main()
{
    int m,n;
    scanf("%d %d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(j%i==0)
            {
                light[j]=1-light[j];
            }
        }
    }
    bool first=1;
    for(int i=1;i<=n;i++)
    {
        if(light[i]==1)
        {
            if(first)
            {
                printf("%d",i);
                first=0;
            }
            else
            {
                printf(",%d",i);
            }
        }
    }
    return 0;
}

1110 查找特定的值

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int y[10005];
int a[10005];
int main()
{
    int n;
    bool b=1;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&y[i]);
    }
    int x;
    scanf("%d",&x);
    for(int i=1;i<=n;i++)
    {
        if(x==y[i])
        {
            printf("%d",i);
            b=0;
            break;
        }
    }
    if(b==1)
        printf("-1");
    return 0;
}

1111 不高兴的津津

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[10];
int y[10];
int main()
{
    int m,n,t;
    for(int i=1;i<=7;i++)
    {
        scanf("%d%d",&m,&n);
        x[i]=m+n;
        y[i]=m+n;
    }
    for(int i=1;i<7;i++)
    {
        for(int j=i+1;j<=7;j++)
        {
            if(x[i]>x[j])
            {
                t=x[i];
                x[i]=x[j];
                x[j]=t;
            }
        }
    }
    if(x[7]<=8)
        printf("0");
    else
    {
        for(int i=1;i<=7;i++)
        {
            if(y[i]==x[7])
            {
                printf("%d ",i);
                break;
            }
        }
    }
    return 0;
}

1112 最大值和最小值的差

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[10005];
int main()
{
    int m,a,b;
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&x[i]);
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=i+1;j<=m;j++)
        {
            if(x[i]<x[j])
            {
                a=x[i];
                x[i]=x[j];
                x[j]=a;
            }
        }
    }
    printf("%d",x[1]-x[m]);
    return 0;
}

1113 不与最大数相同的数字之和

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[105];
int main()
{
    int n,t,s=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            if(x[i]>x[j])
            {
                t=x[i];
                x[i]=x[j];
                x[j]=t;
            }
        }
    }
    for(int i=1;i<=n-1;i++)
    {
        if(x[i]==x[n])
        {
            x[i]=0;
        }
        s+=x[i];
    }
    printf("%d",s);
    return 0;
}

1114 白细胞计数

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double x[305];
int main()
{
    int n;
    double t,s=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%lf",&x[i]);
    }
    for(int i=1;i<n;++i)
    {
        for(int j=i+1;j<=n;++j)
        {
            if(x[i]>x[j])
            {
                t=x[i];
                x[i]=x[j];
                x[j]=t;
            }
        }
    }
    //printf("%lf %lf %lf %lf %lf %lf %lf ",x[1],x[2],x[3],x[4],x[5],x[6],x[7]);
    for(int i=2;i<=n-1;i++)
    {
        s+=x[i];
    }
    double p=s/(n-2);
    printf("%.2lf ",p);
    if(p-x[2]<x[n-1]-p)
        printf("%.2lf",x[n-1]-p);
    else
        printf("%.2lf",p-x[2]);
    return 0;
}

1115 直方图

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[10005];
int y[10005];
int main()
{
    int n,t;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i]);
    }
    for(int i=1;i<n;++i)
    {
        for(int j=i+1;j<=n;++j)
        {
            if(x[i]>x[j])
            {
                t=x[i];
                x[i]=x[j];
                x[j]=t;
            }
        }
    }
    for(int i=0;i<=x[n];i++)
    {
        for(int k=1;k<=n;k++)
        {
            if(x[k]==i)
            {
                y[i]++;
            }
        }
    }
    for(int i=0;i<=x[n];i++)
        printf("%d\n",y[i]);
    return 0;
}

1116 最长平台

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
    int ans=0;
    int n,a,b,c=1;
    scanf("%d%d",&n,&a);
    for(int i=2;i<=n;i++)
    {
        scanf("%d",&b);
        if(a==b)
        {
            c++;
            if(c>ans)
                ans=c;
        }
        else
            c=1;
            a=b;
    }
    printf("%d",ans);
    return 0;
}

1117 整数去重

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int x[20005]={0};
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
         scanf("%d",&x[i]);
    }
    //printf("%d %d %d %d %d\n",x[1],x[2],x[3],x[4],x[5]);
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            if(x[i]==x[j])
            {
                x[j]=0;
            }
        }
    }
    //printf("%d %d %d %d %d/n",x[1],x[2],x[3],x[4],x[5]);
    for(int i=1;i<=n;i++)
    {
        if(x[i]!=0)
            printf("%d ",x[i]);
    }
    return 0;
}

1118 铺地毯

#include<cstdio>
using namespace std;
int a[10005];
int b[10005];
int c[10005];
int d[10005];
int main()
{
    int n,g,k;
    bool s=true;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d%d%d",&a[i],&b[i],&g,&k);
        c[i]=a[i]+g;
        d[i]=b[i]+k;
    }
    int x,y;
    scanf("%d%d",&x,&y);
    for(int i=n;i>=1;i--)
    {
        if(a[i]<=x&&x<=c[i]&&b[i]<=y&&y<=d[i])
        {   
            printf("%d",i);
            s=false;
            break;
        }
    }
    if(s)
        printf("-1");
    return 0;
}

1119 矩阵交换行

#include<cstdio>
using namespace std;
int x[6][6];
int y;
int main()
{
    for(int i=1;i<=5;i++)
    {
        for(int j=1;j<=5;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    int m,n;
    scanf("%d%d",&m,&n);
    for(int i=1;i<=5;i++)
    {
        y=x[m][i];
        x[m][i]=x[n][i];
        x[n][i]=y;
    }
    for(int i=1;i<=5;i++)
    {
        printf("%d %d %d %d %d\n",x[i][1],x[i][2],x[i][3],x[i][4],x[i][5]);
    }
    return 0;
}

1120 同行列对角线的格

#include<cstdio>
using namespace std;
int x[1005][1005];
int main()
{
    int n,i,j;
    bool first=true;
    scanf("%d%d%d",&n,&i,&j);
    for(int k=1;k<=n;k++)
    {
        if(first)
        {
            printf("(%d,%d)",i,k);
            first=false;
        }
        else
        {
            printf(" (%d,%d)",i,k);
        }
    }
    printf("\n");
    first=true;
    for(int k=1;k<=n;k++)
    {
        if(first)
        {
            printf("(%d,%d)",k,j);
            first=false;
        }
        else
        {
            printf(" (%d,%d)",k,j);
        }
    }
    first=true;
    printf("\n");
    for(int k=1;k<=n;k++)
    {
        if(first)
        {
            printf("(%d,%d)",k,k+j-i);
            first=false;
        }
        else
        {
            if((k+j-i)>n)
                break;
            printf(" (%d,%d)",k,k+j-i);
        }
    }
    first=true;
    printf("\n");
    for(int k=1;k<=n;k++)
    {
        if(first)
        {
            printf("(%d,%d)",n-k+1,k);
            first=false;
        }
        else
        {
            if((n-k+1)>n)
                break;
            printf(" (%d,%d)",n-k+1,k);
        }
    }
}

1121 计算矩阵边缘元素之和

#include<cstdio>
using namespace std;
int x[105][105];
int main()
{
    int m,n;
    int a=0,b=0,c=0,d=0;
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=1;i<=n;i++)
    {
        a=a+x[1][i];
        b+=x[m][i];
    }
    for(int i=1;i<=m;i++)
    {
        c+=x[i][1];
        d+=x[i][n];
    }
    printf("%d",a+b+c+d-x[1][1]-x[1][n]-x[m][1]-x[m][n]);
    return 0;
} 

1122 计算鞍点

#include<cstdio>
using namespace std;
int x[5][5];
int main()
{
    bool a=true;
    for(int i=0;i<=4;i++)
    {
        for(int j=0;j<=4;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=0;i<=4;i++)
    {
        for(int j=0;j<=4;j++)
        {
            if((x[i][j]>=x[i][0])&&(x[i][j]>=x[i][1])&&(x[i][j]>=x[i][2])&&(x[i][j]>=x[i][3])&&(x[i][j]>=x[i][4]))
            {
                if((x[i][j]<=x[0][j])&&(x[i][j]<=x[1][j])&&(x[i][j]<=x[2][j])&&(x[i][j]<=x[3][j])&&(x[i][j]<=x[4][j]))
                {
                    printf("%d %d %d",i+1,j+1,x[i][j]);
                    a=false;
                }
            }
        }
    }
    if(a)
    {
        printf("not found");
    }
    return 0;
}

1123 图像相似度

#include<cstdio>
using namespace std;
int x[105][105];
int y[105][105];
int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&y[i][j]);
        }
    }
    double k=0.0;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(x[i][j]==y[i][j])
            {
                k=k+1.0;
            }
        }
    }
    printf("%.2lf",k/(m*n)*100.0);
    return 0;
}

1124 矩阵加法

#include<cstdio>
using namespace std;
int x[105][105];
int y[105][105];
int z[105][105];
int main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            scanf("%d",&y[i][j]);
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            z[i][j]=x[i][j]+y[i][j];
        }
    }
    for(int i=1;i<m;i++)
    {
        for(int j=1;j<n;j++)
        {
            printf("%d ",z[i][j]);
        }
        printf("%d",z[i][n]);
        printf("\n");
    }
    for(int i=1;i<n;i++)
    {
        printf("%d ",z[m][i]);
    }
    printf("%d",z[m][n]);
    return 0;
}

1125 矩阵乘法

#include<cstdio>
using namespace std;
int A[105][105];
int B[105][105];
int C[105][105]={};
int main()
{
    int n,m,k;
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&A[i][j]);
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=k;j++)
        {
            scanf("%d",&B[i][j]);
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=k;j++)
        {
            for(int h=1;h<=m;h++)
            {
                C[i][j]+=A[i][h]*B[h][j];
            }
        }
    }
    for(int i=1;i<n;i++)
    {
        for(int j=1;j<k;j++)
        {
            printf("%d ",C[i][j]);
        }
        printf("%d\n",C[i][k]);
    }
    for(int i=1;i<k;i++)
    {
        printf("%d ",C[n][i]);
    }
    printf("%d",C[n][k]);
    return 0;
}

1126 矩阵转置

#include<cstdio>
using namespace std;
int x[105][105];
int y[105][105];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            y[j][i]=x[i][j];
        }
    }
    for(int i=1;i<m;i++)
    {
        for(int j=1;j<n;j++)
        {
            printf("%d ",y[i][j]);
        }
        printf("%d",y[i][n]);
        printf("\n");
    }
    for(int i=1;i<n;i++)
    {
        printf("%d ",y[m][i]);
    }
    printf("%d",y[m][n]);
    return 0;
}

1127 图像旋转

#include<cstdio>
using namespace std;
int x[105][105];
int y[105][105];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&x[i][j]);
        }
    }
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            y[i][j]=x[n+1-j][i];
        }
    }
    for(int i=1;i<m;i++)
    {
        for(int j=1;j<n;j++)
        {
            printf("%d ",y[i][j]);
        }
        printf("%d\n",y[i][n]);
    }
    for(int i=1;i<n;i++)
    {
        printf("%d ",y[m][i]);
    }
    printf("%d",y[m][n]);
    return 0;
}

1128 图像模糊处理

#include<cstdio>
using namespace std;
int x[101][101];
int y[101][101];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            scanf("%d",&x[i][j]);
            y[i][j]=x[i][j];
        }
    }
    for(int i=2;i<n;i++)
    {
        for(int j=2;j<m;j++)
        {
            y[i][j]=((x[i][j-1]+x[i-1][j]+x[i][j+1]+x[i+1][j]+x[i][j])*2+5)/10;
        }
    }
    for(int i=1;i<n;i++)
    {
        for(int j=1;j<m;j++)
        {
            printf("%d ",y[i][j]);
        }
        printf("%d",y[i][m]);
        printf("\n");
    }
    for(int i=1;i<m;i++)
    {
        printf("%d ",y[n][i]);
    }
    printf("%d",y[n][m]);
    return 0;
}

1129 统计数字字符个数

#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    int s=0;
    char a[260];
    gets(a);
    for(int i=0;i<=strlen(a)-1;i++)
    {
        if(a[i]>='0'&&a[i]<='9')
            s++;
    }
    //printf("%s\n",a);
    printf("%d",s);
    return 0;
}

1130 找第一个只出现一次的字符

#include<cstdio>
#include<cstring>
using namespace std;
char a[100005];
char b[100005];
int main()
{
    bool x=true;
    gets(a);
    int k,h;
    k=strlen(a)-1;
    for(int i=0;i<=k;i++)
    {
        for(int j=i+1;j<=k;j++)
        {
            if(a[i]==a[j])
            {
                b[i]=a[i];
                a[i]='0';
            }
        }
    }
    //printf("%s\n%s\n",a,b);
    for(int i=0;i<=k;i++)
    {
        for(int j=0;j<=k;j++)
        {
            if(a[i]==b[j])
            {
                a[i]='0';
            }
        }
    }
    //printf("%s\n",a);
    for(int i=0;i<=k;i++)
    {
        if(a[i]!='0')
        {
            printf("%c",a[i]);
            x=false;
            break;
        }
    }
    if(x)
        printf("no");
    return 0;
}

1131 基因相关性

#include<cstdio>
#include<cstring>
using namespace std;
char a[505];
char b[505];
int main()
{
    double n,s=0.0;
    scanf("%lf",&n);
    //printf("%lf",n);
    scanf("%s",a);
    scanf("%s",b);
    //printf("%s\n",a);
    int k=strlen(a);
    for(int i=0;i<k;i++)
    {
        if(a[i]==b[i])
        {
            s++;
        }
    }
    double x=s/k;
    //printf("%lf %d %lf ",s,k,x);
    if(x>n)
        printf("yes");
    else
        printf("no");
    return 0;
}

1132 石头剪子布

#include<cstdio>
#include<cstring>
using namespace std;
char p1[10];
char p2[10];
int main()
{
    char r[4];
    r[0]='R';
    r[1]='o';
    r[2]='c';
    r[3]='k';
    char s[8];
    r[0]='S';
    r[1]='c';
    r[2]='i';
    r[3]='s';
    r[4]='s';
    r[5]='o';
    r[6]='r';
    r[7]='s';
    char p[5];
    r[0]='P';
    r[1]='a';
    r[2]='p';
    r[3]='e';
    r[4]='r';
    int n,k,a,b;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%s %s",p1,p2);
        a=strlen(p1);
        b=strlen(p2);
        if(a==b)
            printf("Tie\n");
        else
        {
            if(a==4)
            {
                if(b==8)
                    printf("Player1\n");
                else
                    printf("Player2\n");
            }
            if(a==8)
            {
                if(b==5)
                    printf("Player1\n");
                else
                    printf("Player2\n");
            }
            if(a==5)
            {
                if(b==4)
                    printf("Player1\n");
                else
                    printf("Player2\n");
            }
        }
    }
    return 0;
}

1133 输出亲朋字符串

#include<cstdio>
#include<cstring>
using namespace std;
char a[105];
char b[105];
int main()
{
    gets(a);
    int k=strlen(a);
    int i;
    for(i=0;i<=k-2;i++)
    {
        b[i]=a[i]+a[i+1];
    }
    i++;
    b[i]=a[k-1]+a[0];
    //printf("%c %c %c\n",b[i],a[k-1],a[0]);
    printf("%s%c",b,b[i]);
    return 0;
}

1134 合法C标识符查

#include<cstdio>
#include<cstring>
using namespace std;
char a[25];
int main()
{
    gets(a);
    int k;
    bool x=true;
    k=strlen(a);
    if(a[0]<'0'||a[0]>'9')
    {
        for(int i=0;i<k;i++)
        {
            if(a[i]<=47)
                printf("no");
                x=false;
                break;
            if(a[i]>=58&&a[i]<=64)
                printf("no");
                x=false;
                break;
            if(a[i]>=91&&a[i]<=94)
                printf("no");
                x=false;
                break;
            if(a[i]==96)
                printf("no");
                x=false;
                break;
            if(a[i]>=123&&a[i]<=127)
                printf("no");
                x=false;
                break;
            if(x)
                printf("yes");
        }
    }
    else
    {
        if(x)
            printf("no");
    }
    return 0;
}

1135 配对碱基链

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char a[260];
int main()
{
    gets(a);
    int k=strlen(a);
    for(int i=0;i<k;i++)
    {
        if(a[i]=='A')
            printf("T");
        if(a[i]=='T')
            printf("A");
        if(a[i]=='G')
            printf("C");
        if(a[i]=='C')
            printf("G");
    }
    return 0;
}

1136 密码翻译

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char a[85];
int main()
{
    gets(a);
    int k=strlen(a);
    for(int i=0;i<k;i++)
    {
        if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
        {
            if(a[i]>='a'&&a[i]<='z')
            {
                a[i]=a[i]+1;
            }
            if(a[i]=='{')
            {
                a[i]='a';
            }
            if(a[i]>='A'&&a[i]<='Z')
            {
                a[i]=a[i]+1;
            }
            if(a[i]=='[')
            {
                a[i]='A';
            }
        }
    }
    printf("%s",a);
    return 0;
}

1137 加密的病历单

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char x[1005];
char y[1005];
int main()
{
    gets(x);
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if('a'<=x[i]&&x[i]<='z')
        {
            y[i]=x[i]-32;
        }
        if('A'<=x[i]&&x[i]<='Z')
        {
            y[i]=x[i]+32;
        }   
    }
    //printf("%s\n",y);
    int j=0;
    for(int i=k-1;i>=0;i--)
    {
        x[j]=y[i];
        j++;
    }
    //printf("%s\n",x);
    for(int i=0;i<k;i++)
    {
        if('a'<=x[i]&&x[i]<='w')
        {
            y[i]=x[i]+3;
        }
        if('x'<=x[i]&&x[i]<='z')
        {
            y[i]=x[i]-23;
        }
        if('A'<=x[i]&&x[i]<='W')
        {
            y[i]=x[i]+3;
        }
        if('X'<=x[i]&&x[i]<='Z')
        {
            y[i]=x[i]-23;
        }
    }
    printf("%s",y);
    return 0;
}

1138 将字符串中的小写字母转换成大写字母

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
char x[1005];
char y[1005];
int main()
{
    gets(x);
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if('a'<=x[i]&&x[i]<='z')
        {
            x[i]=x[i]-32;
        }
    }
    //printf("%s\n",y);
    printf("%s",x);
    return 0;
}

1139 整理药名

#include<cstdio>
#include<cstring>
using namespace std;
char name[25];
int main()
{
    int n;
    scanf("%d",&n);
    for(int j=1;j<n;j++)
    {
        scanf("%s",name);
        int k=strlen(name);
        for(int i=0;i<k;i++)
        {
            if('A'<=name[i]&&name[i]<='Z')
            {
                name[i]=name[i]+32;
            }
            if('a'<=name[0]&&name[0]<='z')
            {
                name[0]=name[0]-32;
            }
        }
        printf("%s\n",name);
    }
    scanf("%s",name);
    int k=strlen(name);
    for(int i=0;i<k;i++)
    {
        if('A'<=name[i]&&name[i]<='Z')
        {
            name[i]=name[i]+32;
        }
        if('a'<=name[0]&&name[0]<='z')
        {
            name[0]=name[0]-32;
        }
    }
    printf("%s",name);
    return 0;
}

1140 验证子串

#include<cstdio>
#include<cstring>
using namespace std;
bool com(char a[205],char b[205])
{
    int k1=strlen(a);
    int k2=strlen(b);
    bool x=true;
    char c[205]={0};
    int k[205]={0};
    int d=1;
    for(int j=0;j<k2;j++)
    {
        if(a[0]==b[j])
        {
            k[d]=j;
            d++;
        }
    }
    //printf("%d\n",k);
    for(int i=1;i<=200;i++)
    {
        for(int ll=0;ll<k1;ll++)
        {
            c[ll]=b[k[i]];
            k[i]++;
        }
        //printf("%s\n",c);
        if(strcmp(a,c)==0)
        {
            x=false;
            return true;
        }
    }
    if(x)
    {
        return false;
    }   
}
int main()
{
    char a[205];
    char b[205];
    char c[205];
    gets(a);
    gets(b);
    int k1=strlen(a);
    int k2=strlen(b);
    if(k1<k2)
    {
        if(com(a,b))
        {
            printf("%s is substring of %s",a,b);
        }
        else
            printf("No substring");
    }
    else
    {
        if(com(b,a))
        {
            printf("%s is substring of %s",b,a);
        }
        else
            printf("No substring");
    }
    return 0;
}

1141 删除单词后缀

#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char a[40];
    bool x=true;
    gets(a);
    int k=strlen(a);
    if(a[k-1]=='r'&&a[k-2]=='e'&&x)
    {
        x=false;
        for(int i=0;i<=k-3;i++)
        {
            printf("%c",a[i]);
        }
    }
    if(a[k-1]=='y'&&a[k-2]=='l'&&x)
    {
        x=false;
        for(int i=0;i<=k-3;i++)
        {
            printf("%c",a[i]);
        }
    }
    if(a[k-1]=='g'&&a[k-2]=='n'&&a[k-3]=='i'&&x)
    {
        x=false;
        for(int i=0;i<=k-4;i++)
        {
            printf("%c",a[i]);
        }
    }
    if(x)
        printf("%s",a);
    return 0;
}

1142 单词的长度

#include<cstdio>
#include<cstring>
using namespace std;
char x[1005];
int main()
{
    gets(x);
    bool a=true;
    int k=strlen(x);
    int s=0;
    for(int i=0;i<k;i++)
    {
        if(x[i]!=32)
        {
            s++;
        }
        if(x[i]==32&&s!=0)
        {
            if(a)
            {
                printf("%d",s);
                a=false;
            }
            else
            {
                printf(",%d",s);
            }
            s=0;
        }
    }
    printf(",%d",s);
    return 0;
}

1143 最长最短单词

#include<cstdio>
#include<cstring>
using namespace std;
struct word{
    int s;
    int len;
};
char x[20005];
word a[205];
int main()
{
    int z=0,j=1;
    gets(x);
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if(('a'<=x[i]&&x[i]<='z')||('A'<=x[i]&&x[i]<='Z'))
        {
            if(z==0)
            {
                a[j].len=1;
                a[j].s = i;
                z=1;
            }
            else //if(z==1)
            {
                a[j].len++;
            }
        }
        else //     if(x[i]==' '||x[i]==',')
        {
            if (z != 0) {
                z = 0 ;
                j++ ;
            }
        }
    }
    int smin,smax;
    int maxl=-1,minl=1000;
    for(int i=j;i>=1;i--)
    {
        if(a[i].len!=0)
        {
            if(a[i].len>=maxl)
            {
                maxl=a[i].len;
                smax=i;
            }
            if(a[i].len<=minl)
            {
                minl=a[i].len;
                smin=i;
            }
        }
    }
    for(int i=a[smax].s;i<=a[smax].s+a[smax].len-1;i++)
    {
        printf("%c",x[i]);
    }
    printf("\n");
    for(int i=a[smin].s;i<=a[smin].s+a[smin].len-1;i++)
    {
        printf("%c",x[i]);
    }
    return 0;
}

1144 单词翻转

#include<cstdio>
#include<cstring>
using namespace std;
struct word{
    int s;
    int len;
};
char x[20005];
word a[205];
int main()
{
    int z=0,j=1;
    gets(x);
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if(('a'<=x[i]&&x[i]<='z')||('A'<=x[i]&&x[i]<='Z'))
        {
            if(z==0)
            {
                a[j].len=1;
                a[j].s = i;
                z=1;
            }
            else //if(z==1)
            {
                a[j].len++;
            }
        }
        else //     if(x[i]==' '||x[i]==',')
        {
            if (z != 0) {
                z = 0 ;
                j++ ;
            }
        }
    }
    int smin,smax;
    int maxl=-1,minl=1000;
    for(int i=j;i>=1;i--)
    {
        if(a[i].len!=0)
        {
            if(a[i].len>=maxl)
            {
                maxl=a[i].len;
                smax=i;
            }
            if(a[i].len<=minl)
            {
                minl=a[i].len;
                smin=i;
            }
        }
    }
    int n;
    for(int i=1;i<=j;i++)
    {
        for(int h=a[i].s+a[i].len-1;h>=a[i].s;h--)
        {
            printf("%c",x[h]);
        }
        if(i!=j)
        {
            n=a[i+1].s-a[i].s-a[i].len;
            for(int h=1;h<=n;h++)
            {
                printf(" ");
            }
        }
    }
    return 0;
}

1145 字符串p型编码

#include<cstdio>
#include<cstring>
using namespace std;
char x[1005];
int main()
{
    gets(x);
    char a;
    int s=0;
    a=x[0];
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if(x[i]==a)
        {
            s++;
        }
        if(x[i]!=a)
        {
            printf("%d%c",s,x[i-1]);
            s=1;
            a=x[i];
        }
    }
    printf("%d%c",s,x[k-1]);
    return 0;
}

1146 判断字符串是否为回文

#include<cstdio>
#include<cstring>
using namespace std;
char x[105];
char y[105];
int main()
{
    int j=0;
    gets(x);
    int k=strlen(x);
    for(int i=k-1;i>=0;i--)
    {
        //printf("%c",x[i]);
        y[j]=x[i];
        j++;
    }
    if(strcmp(x,y)==0)
    {
        printf("yes");
    }
    else
    {
        printf("no");
    }
    //printf("%s\n%s",x,y);
    return 0;
}

1147 最高分数的学生姓名

#include<cstdio>
#include<cstring>
using namespace std;
struct x{
    int g;
    char n[25];
};
x st[105];
int main()
{
    int r,maxg=-1,l;
    scanf("%d",&r);
    for(int i=1;i<=r;i++)
    {
        scanf("%d %s",&st[i].g,st[i].n);
    }
    for(int i=1;i<=r;i++)
    {
        if(maxg<=st[i].g)
        {
            maxg=st[i].g;
            l=i;
        }
    }
    printf("%s",st[l].n);
    return 0;
}

1148 连续出现的字符

#include<cstdio>
#include<cstring>
using namespace std;
char x[1005];
int main()
{
    bool b=true;
    int n,s=0,maxl=-1;
    scanf("%d%s",&n,x);
    //gets(x);
    int k=strlen(x);
    char a=x[0],w;
    for(int i=0;i<k;i++)
    {
        if(x[i]==a)
        {
            s++;
        }
        else
        {
            if(s>=n)
            {
                printf("%c",x[i-1]);
                b=false;
                break;
            }
            s=1;
            a=x[i];
        }
    }
    if(b)
        printf("No");
    //printf("%d",n);
    //printf("%s",x);
    return 0;
}

1149 最长单词2

#include<cstdio>
#include<cstring>
using namespace std;
struct word{
    int s;
    int len;
};
char x[20005];
word a[205];
int main()
{
    int z=0,j=1;
    gets(x);
    int k=strlen(x);
    for(int i=0;i<k;i++)
    {
        if(('a'<=x[i]&&x[i]<='z')||('A'<=x[i]&&x[i]<='Z'))
        {
            if(z==0)
            {
                a[j].len=1;
                a[j].s = i;
                z=1;
            }
            else //if(z==1)
            {
                a[j].len++;
            }
        }
        else //     if(x[i]==' '||x[i]==',')
        {
            if (z != 0) {
                z = 0 ;
                j++ ;
            }
        }
    }
    int smin,smax;
    int maxl=-1,minl=1000;
    for(int i=j;i>=1;i--)
    {
        if(a[i].len!=0)
        {
            if(a[i].len>=maxl)
            {
                maxl=a[i].len;
                smax=i;
            }
            if(a[i].len<=minl)
            {
                minl=a[i].len;
                smin=i;
            }
        }
    }
    for(int i=a[smax].s;i<=a[smax].s+a[smax].len-1;i++)
    {
        printf("%c",x[i]);
    }
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值