数组总结

第八章数组总结

一、数组的定义和初始化

数组基类型
数组名称 数组长度

1.[
]中的数既数组的下标,下标的个数表示数组的维度

2.C++语言中的数组下标都是从0开始的,这个数上的数组没有定义

3.在定义数组时不能使用变量定义数组的大小,可以在头部通过定义宏常量来定义不确定长度的数组。

4.二维数组的定义: 类型 数组名[第一维长度][第二维长度];(不能忽略第二维数组的长度)

二、数组的输入,赋值与输出

用循环语句将需要的值挨个输出输入赋值

三、排序在这里插入图片描述

1.选择排序

第i次选择排序通过n-1次数组值的比较,从中选出最大或最小的一个放在第i个位置上,即第一次排序从所有数中挑出最大(小)的数放在第一个的位置上,第二次从第二个到最后一个中跳出来……以此类推

例题 在这里插入图片描述

#include

#define N 100

int a[N];

int main()

{

   int

k,n,t;

   for(int

i=0;i<n-1;i++)

   {

          k=i;

          for(int

j=k+1;j<n;j++)

          {

                 if(a[j]<a[k])  k=j;/*选择的过程*/

                 if(i!=k)

                 {

                        t=a[i];

                        a[i]=a[k];

                        a[k]=t;

                 }/*交换的过程*/

          }

   }

}

2二分查找

思想:将数组分开,通过与中间值得比较,每次将查找范围缩小一半,大大缩小了时间

先排序,后查找

#include

#define N 100

int a[N];

using namespace std;

int main()

{

   int

n,low,high,mid,temp;

low=0,high=n-1,mid=0;

    while(low<=high)

              

     {

                

     mid=(low+high)/2;

                

     if(a[mid]>temp)

                    

     high=mid-1;

                

     else if(a[mid]<temp)

                          

     low=mid+1;

     } 

cout<<“Not
Found!”<<endl;

}

字符数组的定义格式

字符数组定义格式同于一般数组,所不同的是数组类型是字符型,第一个元素同样是从ch1[0]开始,而不是ch1[1]

[存储类型] char 数组名[常量表达式1]…

例如

char ch1[5]; //数组ch1是一个具有5个字符元素的一维字符数组

2.字符串的输入

从键盘输入一个字符数组可以使用scanf语句或gets语句。

(1)scanf语句 格式:scanf(“%s”,字符数组名);

说明:①系统会自动在输入的字符串常量后添加‘\0’标志,因此输入时,仅输入字符串的内容即可。②输入多个字符串时,以空格分隔。

(2)gets语句 格式:gets(字符数组名);

说明:使用gets只能输入一个字符串。读入的是一整行,包括空格。

3、输出

向屏幕输出一个字符串可以使用printf语句或puts语句。

(1)printf语句

格式:printf(“%s”,字符数组名);

在这里插入图片描述

说明:puts语句输出一个字符串和一个换行符。对于已经声明过的字符串a,printf(“%s\n”,a)和 puts(a)是等价的。

个人总结:遇到错误,先要自己反复研读(走查,甚至在纸上写出每一步的循环过程),分析代码有没有问题。有时怎样也找不出错误,看的头疼,是因为没有跳出之前的代码,一直在原来的代码中,读来读去也感觉没有问题。这时要及时跳出自己的代码,回去再看看题,而看题的时候,要当成新题来读,以免陷入原来的代码中。同时要多次回去分析题目要求,因为在分析原题的过程中,往往会产生新的想法。然而,遇到问题也不要走另一个极端——反复想也想不出来,仍然反复的想,这样虽然看起来很坚持,但也浪费时间。

另外,检查程序的时候,如果有数据,要首先检查数组的编号是否一致、语法是否有错误。

但是再怎样细致的检查都不如最初写代码时的仔细来的重要,所以不论写什么样的代码,都应该仔仔细细,不在细节上犯马虎。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值