初学数组时常见问题

加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

每日一句
彼方尚有荣光在!
少年未来定可期在这里插入图片描述

数组中的排序问题

二分查找是一种很普遍的查找和排序方法,数组中的二分法常常令新手有很多疑惑,比如mid用下标表 示还是用数字表示等等之类的问题,这些问题都需要视情况而定
下面用一道入门题来生动解释这道题
1152: 二分搜索
时间限制: 1 Sec 内存限制: 128 MB

题目描述
在有序序列中查找某一元素x。
输入
首先输入一个正整数n(n<=100000),表示该序列有n个整数,然后按从小到大的顺序输入n个整数;

接着是一个正整数m,表示有m次查找;

最后是m个整数,表示m个要查找的整数x。

输出
对于每一次查找,有一行输出。若序列中存在要查找的元素x,则输出元素x在序列中的序号(序号从0   开始);若序列中不存在要查找的元素x,则输出"Not found!"。
样例输入 Copy
5
1 3 5 7 9 
11
1
2
3
4
5
6
7
8
9
10
样例输出 Copy
Not found!
0
Not found!
1
Not found!
2
Not found!
3
Not found!
4
Not found!

显然这是一道需要利用数组来解答的题目
解答如下

#include<stdio.h>
#include<stdlib.h>
#define N 100000
int search (int a[],int n,int x);
int main ()
{
    int a[N],i,n,m,x,j,b;
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    scanf("%d",&m);
    for(i=1;i<=m;i++)
    {
        scanf("%d",&x);
        b=search(a,n,x);
        if(b!=-1) printf("%d\n",b);
        else printf("Not found!\n");
    }
    return 0;
}
int search (int a[],int n,int x)
{
    int low,high,mid;
    low=0;
    high=n-1;
    while(low<=high)
    {
        mid=(low+high)/2;
        if(x>a[mid]) low=mid+1;
        else if(x<a[mid]) high=mid-1;
        else      return mid;
    }
    return -1;
}

多维数组问题

多维数组在定义时就要定义数组长度,在函数调用数组时,也必须要把每一维的数组长度写上去,这样才能保证编译正确。
用经典例题杨辉三角解释

1130: 杨辉三角
时间限制: 1 Sec 内存限制: 128 MB
提交: 515 解决: 586
[提交] [状态] [讨论版] [命题人:eilene]
题目描述
还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
输入
输入只包含一个正整数n(1 <= n <= 30),表示将要输出的杨辉三角的层数。
输出
输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开。
样例输入 Copy
4
样例输出 Copy
1
1 1
1 2 1
1 3 3 1

代码详解如下

#include<stdio.h>
#include<stdlib.h>
#define N 30
int main ()
{
    int n,i,j,a[N][N];//定义每一维数组长度
    scanf("%d",&n);
    a[0][0]=a[1][0]=a[1][1]=1;
    for(i=2;i<n;i++)
        a[i][i]=a[i][0]=1;
    for(i=2;i<n;i++)//循环的嵌套注意两个变量不能相同
    {
        for(j=1;j<i;j++)
        {
            a[i][j]=a[i-1][j-1]+a[i-1][j];
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<=i;j++)
            printf("%d ",a[i][j]);
        printf("\n");//注意空格的输出
    }
}

👌,多维数组方面的笔记到这结束,如果有帮助的话,就请点赞加关注,我是编程小白——狗蛋今天也要努力。
大家一起努力呀!!!!

《C++系列-2》 输入整数n, 输出1~n。 输入整数n, 输出1~n。 最近忙于准备开学摸底测,马上就要小升初了,累啊~ #include<iostream> using namespace std; int main() { int i,n; cin>>n; for(i=1;i<=n;i++) cout<<i<<" "; return 0; } 阅读详情

相关推荐

为ESXI Host添加v3700 FC存储

物理环境: ESXI Host version 5.1.0 Brocade SAN Switch v3700 Storage 存储和ESXI Host分别用光纤线连接在SAN交换机上 1.查询ESXI Host 的WWN号: 2. SAN交换机上查询存储的WWPN号 SAN交换机: 3.建立zone,添加到cfg文件中 brocade8Gb

haoshuwei531024的专栏 7534

若要求输入一个整数n,然后输入n个正整数,输出这n个正整数的最大值。请画出该问题解决的流程图...

好的,我会尽力用中文回答您的问题画出流程图。 首先,我们需要输入一个整数 n,表示要输入的正整数的个数。 然后,我们需要输入 n 个正整数。我们可以使用循环来遍历所有的正整数将它们存储在一个列表中。 在循环结束后,我们可以使用内置函数 max() 来获取这 n 个正整数的最大值。 最后,我们可以输出最大值。 下面是流程图: 输入整数n 初始化变量 max_value = 0 初始化列表 nu...

weixin_35751194的博客 2099

EtherCAT主站视角:如何正确配置一个支持动态PDO的从站(以倍福TwinCAT为例)

本文详细解析了在TwinCAT环境下配置支持动态PDO的EtherCAT从站的全过程。通过MDP(Modular Device Profile)实现模块化配置,涵盖从站工作原理、TwinCAT工程配置、调试技巧到高级应用实践,帮助工程师快速掌握动态PDO配置技术,提升工业现场设备扩展与维护效率。

weixin_30466039的博客 238

【百度松果菁英班】码蹄集题库6(优化版)

新手入门编程练习6

sky6803的博客 512

动态查找问题(C++)

题目描述 Time Limit: 1000 ms Memory Limit: 256 mb 有n个整数的集合,想让你从中找出x是否存在。 输入输出格式 输入描述: 第一行输入一个正整数n(n < 100000) 第二行输入n个正整数,用空格隔开。 第三行输入一个正整数q(q<100000),表示查询次数。 接下来输入q行,每行一个正整数x,查询x是否存在。 输出描述...

沛竹君的博客 318

【C语言入门】笔记七 (数组)

6.1 6.1.1 数据的储存 1.整型数据的存储(当复习计算机基础了) 数值可以采用原码、反码和补码等不同方式表达。正数的原码、反码和补码相同,即符号位都是0,其余各位表示数值。(以下15位为例) 两个字节(byte)的存储单元能表示的最大整数是2¹⁵-1,即32767 (1)原码:符号位是1,其余各位表示数值的绝对值。 (2)反码:符号位是1,其余各位对原码相反 (3)补码:反码加1 ...

Liues233的博客 2628

数组的静态初始化书写方式,二维数组

2、通过练习,书写两种静态初始化,且,我们测试两个常见运行异常。需求: 定义一个int 类型的数组。需求: 遍历二维数组,把二维数组中的元素输出查看。10、 求int 类型二维数组中,所有元素的和。7、通过指定内容,查找数组中,是否有相同元素。6、查找,数组中,指定的 元素(练习)8、二维数组的创建和基本格式。4、数组的练习,求数组中,最大值。1、数组的静态初始化 及内存图。如果有,就返回它的对应的索引。5、数组元素的反转练习。(1)二维数组格式 1。一、数组的静态初始化。9、 遍历二维数组

QJ3167530的博客 531

python多维数组索引_Pytorch 多维数组运算过程的索引处理方式

背景:对 python 不熟悉,能看懂代码,也能实现一些简单的功能,但是对 python 的核心思想和编程技巧不熟,所以使 Pytorch 写 loss 的候遇到很多麻烦,尤其是在 batch_size > 1 的候,做矩阵乘法之类的运算会觉得特别不顺手。所幸,在边查边写的过程中,理解了 python 中多维运算的实现规则。1、python 的基本索引规则从 0 开始对于给定的范围,如 b =...

weixin_39611308的博客 527

Java初学者的30个常见问题

学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:286945438我们一起学Java! 本文回答了30个JAVA入门级初学者的常见问题。 我可以用%除以一个小数吗? a += b 和 ...

chuifuhuo6864的博客 123

java初学数组

java初学数组

zssxcj的博客 228

【C语言初学】打印整型数组的方法

本文是作为C语言初学者,将之间学到的几种打印整形数组的方法整理到这篇文章中。提示:以下是本篇文章正文内容,下面案例可供参考。

m0_49425260的博客 1万+

C语言初学常见问题及错误

许多C语言初学者在编写程序经常忘记包含必要的头文件,导致编译错误。C语言中的每条语句后必须加分号,缺少分号会导致编译错误。访问数组中不存在的元素可能导致程序崩溃或意外行为。初学者编写循环容易造成死循环,导致程序无法终止。未初始化的变量可能会包含垃圾值,导致意外的结果。条件运算符的语法错误容易导致逻辑错误或编译错误。函数通常需要返回一个整数值。确保条件运算符的使用符合语法要求。语句,可能会导致不明确的行为。数组索引从0开始,最大索引应为。在使用变量前对其进行初始化。在每条语句末尾添加分号。

qq_49689383的博客 946

初学者入门C语言】之一维数组(六)

通俗易懂的让你理解一维数组(定义,初始化,输出及使用),使您学习C语言的路上事半功倍(建议初学者收藏)。

m0_67388084的博客 1615

树状数组初学

一、树状数组初学 之前学习过前缀和和差分的一些知识就觉得挺神奇的,然后昨天刷到力扣的每日一题之后发现,好像树状数组在多区间的修改和查询方面很神奇,包括之后要学习的线段树(能解决所有树状数组的问题)可能会更加有收获吧。 二、一些小小的理解 ①lowbit的理解 在线段数组里面有这么一个重要的函数,也是能够构造整个树状数组的核心吧!代码只有一行,但是对于我这种萌新来说,刚开始还是很难理解的。代码如下: //寻找一个数最低位的1 int lowbit(int x) { return x &am

qq_60556896的博客 1074

Java初学数组常见问题

1.如果访问数组元素的候,索引编号不存在,那么会发生数组索引越界异常 原因:索引编号写错了 解决:修改成为存在的正确索引编号 public class Demo01ArrayIndex { public static void main(String[] args) { int[] array = {15,25,35}; System.out.println(array[0]); System.out.println(array[1]);

贝贝小菜鸟的博客 331

初学数组,看了不懂你找我

速学数组 大家好,我是小北。为了跟大家分享知识我决定开始写博文啦。鉴于是初次发表博文,小北决定从简单的数组开始写起,以后会继续写指针、结构体、数据结构、算法等知识的文章哦。不知道大家是否跟小北一样,在刚开始学C语言候对数组理解的不是很透彻呢。为了让更多初学者更好地理解掌握数组,今天小北就来给大家讲解一番。 一、什么是数组 什么是数组呢?很多同学都认为数组就是一组数据,其实数组不仅仅是一组数据,还是一组有序的数据。下面我们来给出对数组的定义。 数组是可以在内存中连续存储多个元素的结构,也可以理解为数组

西北的博客 442

初学C语言:对于数组的认识

本文介绍了C语言数组的基本概念和用法。主要内容包括:一维数组的创建、初始化和使用,通过下标访问数组元素的方法;数组在内存中的连续存储特性;使用sizeof计算数组元素个数;二维数组的创建、初始化和访问方式,重点讲解了按行初始化和省略行数的初始化方法。文章通过具体代码示例详细说明了数组的各种操作,如元素访问、输入输出等,帮助读者全面理解数组这一基础数据结构在C语言中的实现和应用。

uwuwhs的博客 1067

初学JavaDay06——数组

初学JavaDay06——数组的基本操作 1.数组的遍历 public static void bianli(){ System.out.println("数组的遍历"); int arr[]={1,2,3,4,5,6}; for(int i=0;i<arr.length;i++){ System.out.print(a...

weixin_43398639的博客 247

C语言入门(初学函数递归和数组常见的错误)

C语言入门,函数递归,初学数组

Awent1的博客 552
上一篇: 字符串入门和初学字符串常见问题
下一篇: 字符串数组入门之字符串排序问题
狗蛋今天也要努力
博客等级 码龄5年 299粉丝 7原创
评论 20
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗蛋今天也要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值