当前位置: 首页 > news >正文

查找成绩(数组实现)

题目

## 题目描述

输入一组成绩,共n个,这n个成绩的序号为1~n。再查找成绩a,输出每个成绩a的位置。要求用数组存储n个成绩。

## 输入格式

输入数据第一行为正整数n,n≤100。第二行有n个整数,范围为0~100,用空格隔开。第三行有一个成绩a,范围为0~100。

## 输出格式

输出成绩a的每个位置,用空格隔开。如果查找不到成绩a,输出no。

## 输入输出样例 #1

### 输入 #1

```
8
90 88 85 88 88 98 95 100
88
```

### 输出 #1

```
2 4 5
```

## 输入输出样例 #2

### 输入 #2

```
8
90 88 85 88 88 98 95 100
99
```

### 输出 #2

```
no
```

一、明确需求

首先要知道程序要做什么:

  1. 输入一个整数 n(表示有 n 个成绩);
  2. 输入 n 个成绩(整数),存储起来;
  3. 输入一个要查找的成绩 c
  4. 在存储的成绩中查找 c,如果找到,输出所有 c 对应的位置(位置从 1 开始数);
  5. 如果没找到,输出 “no”。

二、设计思路

根据需求,我们可以拆解出几个核心步骤:

  1. 接收输入:先读 n,再读 n 个成绩,最后读要查找的 c
  2. 存储数据:用数组存储这 n 个成绩(数组方便按位置访问);
  3. 查找逻辑:遍历数组,逐个对比元素是否等于 c,记录所有匹配的位置;
  4. 输出结果:如果有匹配的位置,输出这些位置;否则输出 “no”。

三、代码实现步骤(C++)

步骤 1:引入必要的头文件和命名空间
  • 用 #include<bits/stdc++.h> 包含所有标准库(简化代码,不用逐个写头文件);
  • 用 using namespace std; 避免每次输入输出都加 std::

cpp

运行

#include<bits/stdc++.h>
using namespace std;
步骤 2:编写主函数 main

程序从 main 函数开始执行,所以所有逻辑都在这里实现。

cpp

运行

int main() {// 后续代码写在这里return 0; // 程序结束
}
步骤 3:接收并存储成绩个数 n

定义一个整数变量 n,用 cin 从键盘读取输入。

cpp

运行

int n; // 存储成绩的个数
cin >> n; // 读取n
步骤 4:存储 n 个成绩到数组
  • 定义一个数组 a,长度为 n(注意:数组下标可以从 1 开始,方便直接对应 “位置”);
  • 用循环读取 n 个成绩,依次存入数组。

cpp

运行

int a[n]; // 定义数组存储成绩(下标1~n对应位置1~n)
for (int i = 1; i <= n; i++) { // 循环n次,i从1开始cin >> a[i]; // 读取第i个成绩,存入a[i]
}
步骤 5:接收要查找的成绩 c

定义变量 c,读取用户输入的目标成绩。

cpp

运行

int c; // 要查找的成绩
cin >> c;
步骤 6:遍历数组查找 c,记录位置
  • 用一个布尔变量 flag 标记是否找到(初始为 false,找到后改为 true);
  • 遍历数组,对每个元素 a[i],如果等于 c,就输出 i(位置),并更新 flag

cpp

运行

bool flag = false; // 标记是否找到,初始为未找到
for (int i = 1; i <= n; i++) { // 遍历所有成绩if (a[i] == c) { // 如果当前成绩等于ccout << i << " "; // 输出位置i(带空格分隔)flag = true; // 标记为已找到}
}
步骤 7:处理 “未找到” 的情况

如果循环结束后 flag 仍为 false,说明没找到 c,输出 “no”。

cpp

运行

if (!flag) { // 如果flag是false(没找到)cout << "no";
}

四、完整代码

把上面的步骤组合起来,就是完整的程序:

cpp

运行

#include<bits/stdc++.h>
using namespace std;int main() {int n; // 成绩的个数cin >> n;int a[n]; // 存储成绩的数组(下标1~n)for (int i = 1; i <= n; i++) {cin >> a[i];}int c; // 要查找的成绩cin >> c;bool flag = false; // 标记是否找到for (int i = 1; i <= n; i++) {if (a[i] == c) {cout << i << " ";flag = true;}}if (!flag) { // 没找到时输出nocout << "no";}return 0;
}

五、测试示例

我们用实际输入测试一下,确保程序正确:

测试 1:找到多个位置
  • 输入:

    plaintext

    8
    90 88 85 88 88 99 95 100
    88
    
  • 程序执行:数组中位置 2、4、5 都是 88,所以输出 2 4 5 (结尾的空格不影响结果)。
测试 2:找到一个位置
  • 输入:

    plaintext

    8
    90 88 85 88 88 99 95 100
    99
    
  • 程序执行:只有位置 6 是 99,输出 
测试 3:未找到
  • 输入:

    plaintext

    3
    100 90 80

大家还可以在我的bilibili(编程题小白日记)搜索 ···0051.查找成绩(数组实现)··· 找到这道题的视频解析

http://www.dtcms.com/a/481863.html

相关文章:

  • 桃城区网站制作公司做网站注册商标
  • RCE 漏洞全解析:从原理到实战
  • VScode无法获取扩展 Error while fetching extensions.Failed to fetch
  • 用 Docker + Squoosh 打造图片压缩 API 服务
  • 仙桃网站设计公司易拉罐手工制作大全
  • 企业级DevOps选型新思维:从“工具堆砌”到“平台赋能”
  • ThinkPHP8集成RabbitMQ的完整案例实现 原创
  • 一份关于语言模型对齐的技术论述:从基于PPO的RLHF到直接偏好优化
  • 扬州市建设厅网站网站空间在哪里
  • 开源 C++ QT QML 开发(十九)多媒体--音频录制
  • json转excel python
  • 在传输数据时,网络中会出现的问题
  • jenkins在使用中遇到的问题
  • 第8章 zynq uboot更新系统镜像并引导启动和个人心得
  • 网站系统升级建设合同汽车之家官网首页网页
  • 电销外包公司有哪些seo学习网站
  • 基于弱监督病灶增强的模型展开式快速磁共振成像|文献速递-文献分享
  • 十四、OpenCV中的形态学操作
  • 算法279. 完全平方数
  • Prometheus pushgateway学习
  • MySQL索引结构:B树与B+树
  • 进程的基本认识
  • Webpack 打包优化与骨架屏结合:双管齐下提升前端性能与用户体验
  • 鸿蒙:在沙箱目录下压缩或解压文件
  • 智能SQL客户端Chat2DB技术解析
  • 电影网站推广什么是网络营销的主要职能之一
  • Transformers库用法示例:解锁预训练模型的强大能力
  • 大气污染扩散calpuff模型:数据预处理、Calmet气象模块、Post Tools 后处理工具及绘图工具
  • 用气安全与能效优化平台
  • 02117 信息组织【第三章】