当前位置: 代码迷 >> 综合 >> 程序设计与算法 | (10) Lecture(5) OJ作业
  详细解决方案

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

热度:25   发布时间:2024-01-15 00:14:24.0

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; //初始化每行最大值所在的列索引=1for(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;//初始化每列最小值所在的行索引=1for(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;
}
  相关解决方案