预备周总结

PTA | 程序设计类实验辅助教学平台

先冒泡排序,再将最大的与最小的相加,如果小于就一起,大于就只取大值,直到送完

#include<stdio.h>
int main()
{
    int w,n,a[100000],t,zhu=0;
    scanf("%d",&w);
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i=0;i<n-1;i++)
    {
        for(int j=0;j<n-i;j++)
        {
            if(a[i]<a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
        }
    }
    int j=0;
    for(int i=0;i<n-2-j;i++)
    {
        
        if(a[i]+a[n-1-j]>w)
        {
            zhu++;
        }
        if(a[i]+a[n-1-j]<=w)
        {
            zhu++;
            j++;
        }
    }
    printf("%d",zhu);
}
 

PTA | 程序设计类实验辅助教学平台

直接存字符串,然后减下标

#include<stdio.h>
#include<math.h>
#include<string.h>
char a[27];
int main()
{
    int n,sj,x,l[51],y,z;
    char b[51];
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        sj=0;
        scanf("%s",a);
        scanf("%s",b);
        x=strlen(b);
            for(int j=0;j<x;j++)
            {
                for(int k=0;k<26;k++)
                    if(b[j]==a[k])
                        l[j]=k;
            }
        for(int j=1;j<x;j++)
        {
            sj+=abs(l[j]-l[j-1]);
        }
        printf("%d\n",sj);
    }
    
}

PTA | 程序设计类实验辅助教学平台

如果相同就都输出1;如果不同就输出与最大值的差加一,最大值输出0。

#include<stdio.h>
int piao(int x,int y,int z)
{
    int n=0,k=y,l;
    if(y<z)
        k=z;
    if(x>k)
        l=0;
    if(x<=k)
        l=k+1-x;
    return l;
    }
int main()
{
    int n,a,b,c;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d %d %d",&a,&b,&c);
       printf("%d %d %d\n",piao(a,b,c),piao(b,c,a),piao(c,b,a));
        }
     }

PTA | 程序设计类实验辅助教学平台

用数组排序,然后输出下标;注意负数

#include<stdio.h>
#include<string.h>
int main()
{
    int x[10]={0},a;
    char y[19];
    scanf("%s",y);
    a=strlen(y);
    if(y[0]=='-') 
    for(int i=1;i<a;i++)
     {
         x[y[i]-'0']++;
     }
     else
     for(int i=0;i<a;i++)
     {
         x[y[i]-'0']++;
     }
    if(y[0]=='-')
    {
        printf("-");
        for(int i=1;i<=9;i++)
        {
            if(x[i]){
                for(int j=0;j<x[i];j++)
                    printf("%d",i);
            }
        }
    }
    else
    {
        for(int i=9;i>=0;i--)
        {
            if(x[i]){
                for(int j=0;j<x[i];j++)
                    printf("%d",i);
            }
        }
    }
    return 0;
}

PTA | 程序设计类实验辅助教学平台

饮料数等于n/2.

#include<stdio.h>
int main()
{
    int n,a,sum;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&a);
        sum=a/2;
        printf("%d\n",sum);
    }
    
}

PTA | 程序设计类实验辅助教学平台

按网的面积一个一个算然后比较大小

#include<stdio.h>
int main()

    int n,m,a[516][516],sum1,sum2;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        scanf("%d",&a[i][j]);
    }
    for(int k=0;k<m;k++)
        for(int i=0;i<m;i++)
        sum1+=a[k][i];
    if(n<=m)
        printf("%d",sum1);
    else 
    {
        for(int j=0;j<n;j++)
            for(int l=0;l<n;l++)
    {
        sum2=0;
        for(int k=j;k<m+j;k++)
        {
        for(int i=l;i<m+l;i++)
    {
        sum2+=a[k][i];
    }
        }
        if(sum1<sum2)
        sum1=sum2;
    }
        printf("%d",sum1);
    }
    return 0;
}
 

PTA | 程序设计类实验辅助教学平台

先算出每种沙的单价,然后按单价大小购买沙子

#include<stdio.h>
int main()
{
    int n,m;
    double a[1000],x[1000],y[1000],c=0,t,b=0;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++)
    {
        scanf("%lf %lf",&x[i],&y[i]);
        a[i]=y[i]/x[i];
    }
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-1-i;j++)
        {
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
                 t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
                t=y[j];
                y[j]=y[j+1];
                y[j+1]=t;
            }
        }
        int i=0,k=0;
        while(n--)
    {
    c+=x[i++];
    b+=y[k++];
    if(m-c<0)
    break;
}
    if(m-c<0)
    {
    c-=x[i-1];
    b-=y[i-1];
    b+=a[i-1]*(m-c);
    }
    printf("%.2lf",b);
    return 0;
}


 

PTA | 程序设计类实验辅助教学平台

用for循环相加会超时,要用数组存相加后的值,然后用区域后的值减;

#include<stdio.h>
int a[100000]={0};
int main()
{
    int n,m,l,r,d;
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&d);
        a[i]=a[i-1]+d;
    }

    for(int i=0;i<m;i++)
    {
        scanf("%d %d",&l,&r);
           printf("%d\n",a[r]-a[l-1]);
    }
}

PTA | 程序设计类实验辅助教学平台

用数组下标输出;

int a[10000010];
int main()
{
    int n,m;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&m);
        a[m]++;
    }
    for(int i=0;i<10000010;i++)
        if(a[i]) printf("%d ",i);
    printf("\n");
}
 

预备役第一周 - Virtual Judge

注意5x+3y+z/3=n n=x+y+z;

按公式写代码;一个一个试,满足的输出;

预备役第一周 - Virtual Judge

小时减小时 分钟减分钟 秒减秒 然后都转化为秒;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值