2023-2024-1高级语言程序设计-一维数组

7-1 逆序输出数组元素的值

从键盘输入n个整数存入一维数组中,然后将数组元素的值逆序输出。

输入格式:

第一行输入整数个数n;
第二行输入n 个整数,数据之间以空格隔开。

输出格式:

逆序输出数组元素的值,每个数据之后跟一个空格。

输入样例:

10
11 22 99 33 88 76 56 45 89 10

输出样例:

10 89 45 56 76 88 33 99 22 11 
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[105],i;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    for(i=n-1;i>=0;i--){
        cout<<a[i]<<' ';
    }
    return 0;
}

 7-2 将数组中的数逆序存放

本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。

输入格式:

输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。

输入样例:

4
10 8 1 2

输出样例:

2 1 8 10
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[15],i;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    for(i=n-1;i>=0;i--){
        cout<<a[i];
        if(i)cout<<' ';
    }
    return 0;
}

 

7-3 第几天

你知道,2012-1-1是该年的第1天,而9999-9-9呢?给你一个具体的日期,计算该日期是该年的第几天。

输入格式:

输入一个日期,格式为:Year-month-day。year是小于9999的正整数。

输出格式:

一个整数,表示该日期是该年的第几天。

输入样例:

在这里给出一组输入。例如:

2012-3-1

输出样例:

在这里给出相应的输出。例如:

61

 

#include<bits/stdc++.h>
using namespace std;
int main(){
     int i,a,b,c,x[15]={31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d-%d-%d",&a,&b,&c);
    if(a%400==0||(a%4==0&&a%100))x[1]=29;
    for(i=0;i<b-1;i++)
        c+=x[i];
    cout<<c;
    return 0;
}

7-4 斐波那契

斐波那契数列,指的是这样一个数列:0,1,1,2,3,5,8,……,这个数列从第3项开始,每一项都等于前两项之和。求斐波那契数列的前n项。

输入格式:

输入一个n(n>=3)的值。

输出格式:

输出斐波那契数列的前n项。

输入样例:

在这里给出一组输入。例如:

6

输出样例:

在这里给出相应的输出。例如:

0,1,1,2,3,5
#include<bits/stdc++.h>
using namespace std;
int main(){
      int a[105],i,n;
    cin>>n;
    a[0]=0,a[1]=1;
    for(i=2;i<n;i++)a[i]=a[i-1]+a[i-2];
    for(i=0;i<n;i++){
        if(i)cout<<",";
        cout<<a[i];
    }
    return 0;
}

 7-5 评委打分

班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?

输入格式:

第一行有十个整数,表示十位同学的初始分。第二行一个整数n,表示有n道题竞赛。
接下去有n行,每行有一个数字x,x表示本次可以加分的选手序号(每次答对者得10分)。

输出格式:

10个同学最终的得分值,每两位同学之间有一个空格。

输入样例:

10 0 0 0 10 10 0 0 0 10
3
1
10
1

输出样例:

30 0 0 0 10 10 0 0 0 20
#include<bits/stdc++.h>
using namespace std;
int main(){
      int a[105],i,n,x;
    for(i=1;i<=10;i++)cin>>a[i];
    cin>>n;
    while(n--){
        cin>>x;
        a[x]+=10;
    }
    for(i=1;i<=10;i++){
        if(i!=1)cout<<' ';
        cout<<a[i];
    }
    return 0;
}

 7-6 统计分数段人数

请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下、10-19分、20-29分、30-39分、40-49分、50-59分、60-69分、70-79,80-89分,90到99分,100分为一段,共11段 。
注意:如果输入分数不在[0,100]之间,不参与统计。

输入格式:

先输入一个整数n,表示将输入n个分数。
再输入n个分数,范围在[0~100].
每个数用空格间隔。

输出格式:

每一行输出一个分数段的人数统计结果。分数段用0~10表示。

输入样例:

在这里给出一组输入。例如:

6
50 60 98 100 0 1000

输出样例:

在这里给出相应的输出。例如:

0: 1
1: 0
2: 0
3: 0
4: 0
5: 1
6: 1
7: 0
8: 0
9: 1
10: 1
#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,i,a[15]={0},y;double x;
    cin>>n;
    while(n--){
        cin>>x;
        if(x>=0&&x<=100){y=x/10;a[y]++;}
    }
    for(i=0;i<=10;i++){
        cout<<i<<": "<<a[i]<<endl;
    }
    return 0;
}

 7-7 统计工龄

给定公司多名员工的工龄,按输入工龄顺序输出每个工龄段有多少员工。

输入格式:

给出多个整数,即每个员工的工龄,范围在[0, 50]。

输出格式:

按输入工龄顺序输出每个工龄的员工个数,格式为:“工龄:人数”。
每项占一行。

输入样例:

10 2 0 5 7 2 5 2

输出样例:

10:1
2:3
0:1
5:2
7:1
#include<bits/stdc++.h>
using namespace std;
int main(){
      int x,a[105]={0},i,y=0,b[105],c[55]={0};
    while(cin>>x){
        a[x]++;
        b[y++]=x;
    }
    for(i=0;i<y;i++){
        if(c[b[i]]==0)
            {cout<<b[i]<<":"<<a[b[i]]<<endl;c[b[i]]=1;}
    }
    return 0;
}

 7-8 调查电视节目受欢迎程度

某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤1000),现要求编写程序,输入每一位观众的投票情况(每位观众只能选择一个最喜欢的栏目投票),统计输出各栏目的得票情况。

输入格式:

输入在第1行中给出一个正整数n(1≤n≤1000),第2行输入n个整数,其间以空格分隔。

输出格式:

按顺序输出所有8个栏目的编号和得票数,每个数占4位,每行输出一个栏目的编号和得票数。

输入样例:

10
3 4 7 6 3 9 2 3 1 8

输出样例:

   1   1
   2   1
   3   3
   4   1
   5   0
   6   1
   7   1
   8   1
#include<bits/stdc++.h>
using namespace std;
int main(){
      int n,x,i,a[1005];
    cin>>n;
    while(n--){
        cin>>x;
        a[x]++;
    }
    for(i=1;i<=8;i++){
        printf("%4d%4d\n",i,a[i]);
    }
    return 0;
}

 7-9 求最大值及其下标

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

输入样例:

6
2 8 10 1 9 10

输出样例:

10 2
#include<bits/stdc++.h>
using namespace std;
int main(){
      int n,x,i,a[1005],max;
    cin>>n;
    cin>>a[0];
    max=a[0];
    for(i=1;i<n;i++){
        cin>>a[i];
        if(a[i]>max)max=a[i];
    }
    for(i=0;i<n;i++){
         if(a[i]==max){
             cout<<max<<' '<<i;break;
         }
    }
    return 0;
}

 7-10 点赞

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。

输入格式:

输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1​⋯FK​”,其中1≤K≤10,Fi​(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式:

统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。

输入样例:

4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123

输出样例:

233 3
#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,k,x,i,a[1005]={0},max=0;
    cin>>n;
    while(n--){
        cin>>k;
        while(k--){
            cin>>x;
            a[x]++;
            if(a[x]>max)max=a[x];
        }
    }
    for(i=1000;i>=1;i--)
        if(a[i]==max){cout<<i<<' '<<a[i];break;}
    return 0;
}

 7-11 根据所给数据,输入一个区间,输出其中最多的点赞量。

根据表中所给微博点赞数据:{3056,1169,2743,1616,2391,930,968,1011,1386,936},
输入一个区间,输出其区间最多的点赞量。

1.png

输入格式:

两个数据用空格隔开,例如输入:2 5

输出格式:

2743

输入样例:

4 7

输出样例:

2391
#include<bits/stdc++.h>
using namespace std;
int main(){
      int x,y,i,a[15]={0,3056,1169,2743,1616,2391,930,968,1011,1386,936},max=0;
     cin>>x>>y;
    for(i=x;i<=y;i++){
        if(a[i]>max)max=a[i];
    }cout<<max;
    return 0;
}

 

7-12 排序

请编写程序对不超过50000个整数递增排序。

输入格式:

输入第一行一个正整数n,表示待排序的元素个数。第二行为n个整数,表示待排序的元素。n不超过50000。

输出格式:

输出为一行,表示排序结果,每个整数后一个空格。

输入样例:

5
5 4 3 2 1

输出样例:

1 2 3 4 5 
#include<bits/stdc++.h>
using namespace std;
int main(){
       int n,a[500005],i;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    sort(a,a+n);
    for(i=0;i<n;i++)cout<<a[i]<<' ';
    return 0;
}

 7-13 歌手得分

在歌手大赛中,有n个评委为参赛的歌手打分,分数为0~100分。歌手最后得分为去掉m个最高分和m个最低分后,剩余的n−2m个分数的平均值。

输入格式:

输入数据的第一行为一个正整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试数据,第一行输入两个整数n,m(3<n<100,m<n/2),含义如上;第二行输入n个整数。

输出格式:

对于每组测试数据,输出一行,包含一个实数,表示歌手的最后得分。结果保留两位小数。

输入样例:

2
10 1
20 20 80 80 10 10 10 40 40 60
10 2
20 20 80 80 10 10 10 40 40 60

输出样例:

35.00
31.67
#include<bits/stdc++.h>
using namespace std;
int main(){
       int t,n,m,i;
    cin>>t;
    while(t--){
        cin>>n>>m;
        int a[105],s=0;
    for(i=0;i<n;i++)cin>>a[i];
    sort(a,a+n);
    for(i=0+m;i<n-m;i++)s+=a[i];
        printf("%.2f\n",s*1.0/(n-2*m));
    }
    return 0;
}

 

7-14 二分查找

输入n值(1<=n<=1000)、n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入格式:

输入共三行:
第一行是n值;
第二行是n个整数;
第三行是x值。

输出格式:

输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。

输入样例:

4
1 2 3 4
1

输出样例:

0
2
#include<bits/stdc++.h>
using namespace std;
int main(){
        int n,i,x,a[1005],l,h,mid,y=1,k=0;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    cin>>x;
    l=0,h=n-1;
    while(1){
        mid=(l+h)/2;
        if((mid==0&&a[mid]!=x)||(mid==n-1&&a[mid]!=x)){k=1;break;}
        if(a[mid]==x)break;
        y++;
        if(a[mid]>x)h=mid-1;
         if(a[mid]<x)l=mid+1;
    }
    if(k)cout<<"-1\n"<<y;
    else
    cout<<mid<<endl<<y;
    return 0;
}

 7-15 找出不是两个数组共有的元素

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。

输入样例:

10 3 -5 2 8 0 3 5 -15 9 100
11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m,i,a[105],b[105],c[100005]={0},x=0;
    cin>>n;
    for(i=0;i<n;i++)cin>>a[i];
    cin>>m;
    for(i=0;i<m;i++)cin>>b[i];
    for(i=0;i<n;i++){
        if(c[a[i]]==1)continue;
        c[a[i]]=1;
        int k=0;
        for(int j=0;j<m;j++){
        if(a[i]==b[j]){k=1;break;}
        }
        if(k==0){
            if(x)cout<<' ';
            cout<<a[i];
            x=1;
        }
    }
    for(i=0;i<m;i++){
        if(c[b[i]]==1)continue;
        c[b[i]]=1;
        int k=0;
        for(int j=0;j<n;j++){
        if(b[i]==a[j]){k=1;break;}
        }
        if(k==0){
            if(x)cout<<' ';
            cout<<b[i];
            x=1;
        }
    }
    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/118237.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[LeetCode] 2.两数相加

一、题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个…

火山引擎实时、低延时拥塞控制算法的优化实践

摘要 火山引擎智能拥塞控制算法 VICC&#xff08;Volcano Intelligent Congestion Control&#xff09;是一种自适应的拥塞控制算法&#xff0c;旨在解决全球不同网络环境下&#xff0c;不同音视频应用对带宽利用率和延时的差异化要求。它结合了传统拥塞控制算法&#xff08;如…

深度学习_4 数据训练之线性回归

训练数据 线性回归 基本原理 比如我们要买房&#xff0c;机器学习深度学习来预测房价。房价的影响因素有&#xff1a;卧室数量&#xff0c;卫生间数量&#xff0c;居住面积。此外&#xff0c;还需要加上偏差值来计算。我们要找到一个正确率高的计算方法来计算。 首先&#…

基于8086汽车智能小车控制系统

**单片机设计介绍&#xff0c;基于8086汽车智能小车控制系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于 8086 的汽车智能小车控制系统是一种将微处理器技术应用于汽车控制的系统。下面是其主要的设计介绍&#xff1a; 硬…

Python库学习(十二):数据分析Pandas[下篇]

接着上篇《Python库学习(十一):数据分析Pandas[上篇]》,继续学习Pandas 1.数据过滤 在数据处理中&#xff0c;我们经常会对数据进行过滤&#xff0c;为此Pandas中提供mask()和where()两个函数&#xff1b; mask(): 在 满足条件的情况下替换数据&#xff0c;而不满足条件的部分…

在二维矩阵/数组中查找元素 Leetcode74, Leetcode240

这一类题型中二维数组的元素取值有序变化&#xff0c;因此可以用二分查找法。我们一起来看一下。 一、Leetcode 74 Leetcode 74. 搜索二维矩阵 这道题要在一个二维矩阵中查找元素。该二维矩阵有如下特点&#xff1a; 每行元素 从左到右 按非递减顺序排列。每行的第一个元素 …

JS+CSS随机点名详细介绍复制可用(可自己添加人名)

想必大家也想拥有一个可以随机点名的网页&#xff0c;接下来我为大家介绍一下随机点名&#xff0c;可用于抽人&#xff0c;哈哈 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>* {margin: 0;…

麒麟系统查看磁盘UUID方法

通过查看 /dev/disk/by-uuid/ 目录下的软连接确定磁盘UUID ls -l /dev/disk/by-uuid/ 命令输出入下图所示&#xff0c;红框中即为磁盘UUID号 通过 blkid 命令查看系统中某块磁盘的uuid 号 blkid 命令输出如下图所示&#xff0c;UUID”” 中即为磁盘UUID号 开机自动…

记一次对某变异webshell的分析

0x01 前言 在某活动中捕获到一个变异的webshell&#xff08;jsp文件格式&#xff09;&#xff0c;如图1.1所示。样本webshell的大致功能是通过加载字节码来执行恶意代码&#xff0c;整个webshell的核心部分逻辑是在字节码中。 样本文件下载链接&#xff1a; https://github.co…

数据结构:AVL树讲解(C++)

AVL树 1.AVL树的概念2.平衡因子3.节点的定义4.插入操作5.旋转操作&#xff08;重点&#xff09;5.1左单旋5.2右单旋5.3左右双旋5.4右左双旋 6.一些简单的测试接口7.完整代码 1.AVL树的概念 普通二叉搜索树&#xff1a;二叉搜索树 二叉搜索树虽可以缩短查找的效率&#xff0c;但…

操作系统·操作系统引论

1.1 操作系统的目标和作用 1.目前常见操作系统&#xff1a; 微软&#xff1a;Windows系列&#xff08;以前MS-DOS&#xff09; UNIX&#xff1a;Solaris, AIX, HP UX, SVR4, BSD, ULTRIX 自由软件&#xff1a;Linux, freeBSD, Minix IBM: AIX, zOS(OS/390), OS/2, OS/400, PC…

壹[1],QT自定义控件创建(QtDesigner)

1&#xff0c;环境 Qt 5.14.2 VS2022 原因&#xff1a;厌烦了控件提升的繁琐设置&#xff0c;且看不到界面预览显示。 2&#xff0c;QT制作自定义控件 2.1&#xff0c;New/其他项目/Qt4 设计师自定义控件 2.2&#xff0c;设置项目名称 2.3&#xff0c;设置 2.4&#xff0c;设…

智能安全帽功能-EIS智能防抖摄像头4G定位视频语音气体检测

智能安全帽是一种集成多种智能功能的产品&#xff0c;例如实时定位、语音对讲、健康监测和AI智能预警等。这些丰富的功能能够更好地帮助工人开展工作&#xff0c;并提升安全保障水平。智能安全帽在各个行业中的应用越来越广泛。尤其在工程建设领域&#xff0c;项目管理和工作安…

京东店铺所有商品数据接口(JD.item_search_shop)

京东店铺所有商品数据接口是一种允许开发者在其应用程序中调用京东店铺所有商品数据的API接口。利用这一接口&#xff0c;开发者可以获取京东店铺的所有商品信息&#xff0c;包括商品标题、SKU信息、价格、优惠价、收藏数、销量、SKU图、标题、详情页图片等。 通过京东店铺所有…

嵌入式Linux和stm32区别? 之间有什么关系吗?

嵌入式Linux和stm32区别? 之间有什么关系吗&#xff1f; 主要体现在以下几个方面&#xff1a; 1.硬件资源不同 单片机一般是芯片内部集成flash、ram&#xff0c;ARM一般是CPU&#xff0c;配合外部的flash、ram、sd卡存储器使用。最近很多小伙伴找我&#xff0c;说想要一些嵌…

四阶龙格库塔与元胞自动机

龙格库塔法参考&#xff1a; 【精选】四阶龙格库塔算法及matlab代码_四阶龙格库塔法matlab_漫道长歌行的博客-CSDN博客 龙格库塔算法 Runge Kutta Method及其Matlab代码_龙格库塔法matlab_Lzh_023016的博客-CSDN博客 元胞自动机参考&#xff1a; 元胞自动机&#xff1a;森林…

小仙女必备,1分钟就能做出精美的电子相册

不知道大家有没有这样的困惑&#xff0c;手机里的照片太多&#xff0c;长久以来很多照片都容易被忘记。这个时候我们就可以将照片制作成电子相册&#xff0c;方便我们随时回味那些照片里的故事。如何制作呢&#xff1f; 制作电子相册只需要一个简单实用的制作工具就可以轻松完成…

【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位

论文题目&#xff1a;Direct LiDAR Odometry: Fast Localization With Dense Point Clouds 中文题目&#xff1a;直接激光雷达里程计:利用密集点云快速定位 作者&#xff1a;Kenny Chen, Brett T.Lopez, Ali-akbar Agha-mohammadi 论文链接&#xff1a;https://arxiv.org/pd…

在 CelebA 数据集上训练的 PyTorch 中的基本变分自动编码器

摩西西珀博士 一、说明 我最近发现自己需要一种方法将图像编码到潜在嵌入中&#xff0c;调整嵌入&#xff0c;然后生成新图像。有一些强大的方法可以创建嵌入或从嵌入生成。如果你想同时做到这两点&#xff0c;一种自然且相当简单的方法是使用变分自动编码器。 这样的深度网络不…

学习LevelDB架构的检索技术

目录 一、LevelDB介绍 二、LevelDB优化检索系统关键点分析 三、读写分离设计和内存数据管理 &#xff08;一&#xff09;内存数据管理 跳表代替B树 内存数据分为两块&#xff1a;MemTable&#xff08;可读可写&#xff09; Immutable MemTable&#xff08;只读&#xff0…