程序设计与算法 | (10) Lecture(5) OJ作业

OJ地址

Lecture (5)包含以下七道编程题,可以在上面的OJ提交。

028:与指定数字相同的数的个数

在这里插入图片描述

#include <iostream>
using namespace std;
#define N 100
int a[N+10];
int main(int argc, const char * argv[]) {
   
    int n;
    cin>>n;
    int i;
    for(i=0;i<n;i++)
        cin>>a[i];
    int m;
    cin>>m;
    int count = 0;
    for(i=0;i<n;i++)
        if(a[i]==m)
            count++;
    cout<<count<<endl;
    return 0;
}

029:陶陶摘苹果

在这里插入图片描述

#include <iostream>
using namespace std;
#define N 10
int a[N+5];

int main(int argc, const char * argv[]) {
    
    int i;
    for(i=0;i<10;i++)
        cin>>a[i];
    int h;
    cin>>h;
    
    int count=0;
    for(i=0;i<10;i++)
        if(a[i]<=h+30)
            count++;
    cout<<count<<endl;
    return 0;
}

030:年龄与疾病

在这里插入图片描述

#include <iostream>
using namespace std;


int main(int argc, const char * argv[]) {
    
    int n;
    scanf("%d",&n);

    int c1=0,c2=0,c3=0,c4=0;
    int m;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&m);
        if(m>=0&&m<=18)
            c1++;
        if(m>=19&&m<=35)
            c2++;
        if(m>=36&&m<=60)
            c3++;
        if(m>=61)
            c4++;
    }
    printf("%.2lf%%\n",double(c1)/n*100); //输出% 要用两个%%
    printf("%.2lf%%\n",double(c2)/n*100);
    printf("%.2lf%%\n",double(c3)/n*100);
    printf("%.2lf%%\n",double(c4)/n*100);
    
    
    return 0;
}

031:校门外的树

在这里插入图片描述

#include <iostream>
using namespace std;
#define N 10000
char trees[N+10];

int main(int argc, const char * argv[]) {
    
    int L,M;
    cin>>L>>M;
    
    int s,e;
    while(M--)
    {
        cin>>s>>e;
        for(int i=s;i<=e;i++)
            trees[i]=1;
    }
    int count = 0;
    for(int i=0;i<=L;i++)
        if(trees[i]==0)
            count++;
    cout<<count<<endl;
    return 0;
}

032:计算鞍点

在这里插入图片描述

#include <iostream>
using namespace std;
#define N 5
int a[N+10][N+10];
int maxJ[N+10]; //存储每行最大值所在的列索引
int minI[N+10]; //存储没列最小值所在的行索引

int main(int argc, const char * argv[]) {
    
    for(int i=1;i<=N;i++)
    {
        cin>>a[i][1];
        maxJ[i]=1; //初始化每行最大值所在的列索引=1
        for(int j=2;j<=N;j++)
        {
            cin>>a[i][j];
            if(a[i][j]>a[i][maxJ[i]])
                maxJ[i]=j;
        }
    }
    
    for(int j=1;j<=N;j++)
    {
        minI[j]=1;//初始化每列最小值所在的行索引=1
        for(int i=1;i<=N;i++)
        {
            if(a[i][j]<a[minI[j]][j])
                minI[j]=i;
        }
    }
    
    bool found = false;
    for(int i=1;i<=N;i++) //遍历每一行
    {
        if(minI[maxJ[i]]==i)
        {
            cout<<i<<" "<<maxJ[i]<<" "<<a[i][maxJ[i]]<<endl;
            found=true;
        }
    }
    if(!found)
        cout<<"not found"<<endl;
    
            
    return 0;
}

033:图像模糊处理

在这里插入图片描述

#include <iostream>
#include <cmath>
using namespace std;
#define N 100
int a[N+10][N+10];

int main(int argc, const char * argv[]) {
    
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        for (int j=0; j<m; j++) {
            cin>>a[i][j];
        }
    }

    for(int i=0;i<n;i++)
    {
       for (int j=0; j<m; j++) {
           if(j==0)
               cout<<a[i][j];
           else if(i==0||i==n-1||j==m-1)
               cout<<" "<<a[i][j];
           else
           {
               double res = (a[i][j]+a[i-1][j]+a[i+1][j]+a[i][j-1]+a[i][j+1])/5.0;
               cout<<" "<<round(res); //round是把浮点数四舍五入为整数
           }
       }
        cout<<endl;      
    }
    return 0;
}

034:矩阵转置

在这里插入图片描述

#include <iostream>
using namespace std;
#define N 100
int a[N+10][N+10];

int main(int argc, const char * argv[]) {
    
    int m,n;
    cin>>m>>n;
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            cin>>a[i][j];
    
    for(int j=0;j<n;j++)
    {
        for(int i=0;i<m;i++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值