电子学会编程等级考试二级-一维数组

电子学会编程等级考试二级-一维数组

1.6-01 

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

 

#include<bits/stdc++.h>
using namespace std;
int a[105],n,m,ans;
int main(){
    cin>>n;//输入序列长度n 
    for(int i=0;i<n;i++){//循环输入n个数道数组a 
        cin>>a[i];
    }
    cin>>m;//输入要查找的数到m 
    for(int i=0;i<n;i++){//需要遍历a数组 
        if(a[i]==m){//找到m ans加一 
            ans++;
        }
    }
    cout<<ans;
}

 1.6-02

陶陶摘苹果

#include<bits/stdc++.h>
using namespace std;
int a[10],m,ans;
int main(){
    for(int i=0;i<10;i++){//输入10个苹果高度到数组a 
        cin>>a[i];
    }
    cin>>m;//输入陶陶可达的高度 
    for(int i=0;i<10;i++){
        if(m+30>=a[i]){//陶陶站在凳子上可达高度比苹果高 ans加1 
            ans++;
        } 
    }
    cout<<ans;
}

 1.6-03

计算书费

#include<bits/stdc++.h>
using namespace std;
float prices[10]={28.9,32.7,45.6,78,35,86.2,27.8,43,56,65};//提前存储10本书价格 
int x;
float ans;
int main(){
    for(int i=0;i<10;i++){
        cin>>x;//输入每种数数量到x 
        ans+=prices[i]*x;//书价*数量 累加到ans 
    }
    printf("%.1f",ans);//保留一位小数输出 
}

 1.6-04

数组逆序重放

#include<bits/stdc++.h>
using namespace std;

int a[100];
int main(){
    int n,t;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    for(int i=1;i<=n/2;i++){//交换n/2次 
        swap(a[i],a[n+1-i]);//a[i]与a[n+1-i] 交换  1与n交换  2与n-1交换 
    }
    for(int i=1;i<=n;i++){
        printf("%d ",a[i]);
    }
    return 0;
}

 1.6-05

年龄与疾病

#include<bits/stdc++.h>
using namespace std;

int a[1000];
int main(){
    int n;
    //a1,a2,a3,a4每个年龄人数 
    //b1,b2,b3,b4每个年龄段百分比 
    double b1,b2,b3,b4,a1=0,a2=0,a3=0,a4=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]<=18){
            a1++;
        }else if(a[i]<=35){
            a2++;
        }else if(a[i]<=60){
            a3++;
        }else if(a[i]>=60){
            a4++;
        }
    }
    b1=a1/n*100;
    b2=a2/n*100;
    b3=a3/n*100;
    b4=a4/n*100;
    // %.2f 保留两位小数  %% 输出一个%  \n 换行
    printf("%.2f%%\n",b1); 
    printf("%.2f%%\n",b2);
    printf("%.2f%%\n",b3);
    printf("%.2f%%\n",b4);
    return 0;
} 

1.6-06

校门外的树

#include<bits/stdc++.h>
using namespace std;

int main(){
    int a[10001];
    int l,m,x,y,s=0;
    scanf("%d%d",&l,&m);
    for(int i=0;i<=l;i++){// 0-l包括l+1种树位置 
        a[i]=1;//都赋值为1表示都种树 
    }
    for(int i=1;i<=m;i++){//m段修地铁 
        scanf("%d%d",&x,&y);//每段起始 
        for(int j=x;j<=y;j++){//每段起始位置包括中间数都不能种树 
            a[j]=0;//不能种树的地方设置为0 可能有重复的多次设置为0 
        }
    }
    for(int i=0;i<=l;i++){// 0-l包括l+1种树位置 
        if(a[i]==1) s++; //可以种树的位置累加到s 
    }
    printf("%d",s);
    return 0;
}

1.6-07

有趣的跳跃

#include<bits/stdc++.h>
using namespace std;
//a数组存储所有数 b数组存放相邻差 
int a[3001],b[3001],n;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<n;i++){//b[1]为a[1]与a[2]的差 b[n-1]为a[n-1]与a[n]的差 
        b[i]=abs(a[i]-a[i+1]);
    }
    sort(b,b+n);//从0开始对n-1个数进行排序 第一个为0 排在最前面 升序 
    for(int i=1;i<n;i++){//从第一个开始 b[i]和i相同才符合要求 
        if(b[i]!=i){//找到不同的结束 
            cout<<"Not jolly";
            return 0;
        }
    }
    cout<<"Jolly";//没有找到不同的 输出 
    return 0;
}

 

posted @ 2021-07-31 09:18  new-code  阅读(99)  评论(0编辑  收藏  举报