数组学习总结

本章我们主要学习了一维数组和二维数组的定义和初始化,以及应用等,除此之外我们也学习了二分法等一些解决程序超时等问题的方法,同时我们也学习了字符类型和字符数组。
基本知识点:
一维数组定义:数据类型 数组名 [元素个数],二维数组定义:数据类型 数组名[常量表达式1] [常量表达式2]。
在使用数组时必须注意数组的下标都是从0开始的,并且在定义数组时不能使用变量定义数组,但在引用时可用变量,这里要特别注意的是下标不能越界,在数组使用时,编译程序是不检查是否越界的,所以在定义时可以比题目的范围大一点,以防越界。
字符类型和字符数组
字符常量定义:
const
字符常量=‘字符’
字符变量定义:char 字符变量;
字符类型是顺序类型,我们可把字符变量当做循环变量。
例:for(char letter=’a’;letter<=’z’;letter+=2)
字符数组定义:char 数组名[常量表达式1]
在使用字符数组时要注意字符常量与字符串常量,字符常量占一个字节,而字符串常量占字节数等于字符串的字节数加一,增加的是字符串结束标志’\0’。
字符串的输入可用scanf语句,但必须注意的是在字符串前加取地址符(&),除了scanf语句,我们也可以用gets语句,但只可以输入一个字符串。
而对于输出可用printf语句和puts语句。
除了这些基本知识如何使用以及使用时应注意的外,我们最重要的是学习了解决数组问题时一些方法。
冒泡排序:
for(i=0;i<=n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(score[j]>score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
}
}
}
除了冒泡排序外我们也可用sort函数,用法:sort(a,a+n),需要用algorithm头文件。
我们也学习了插入排序:
for(i=1;i<num;i++)
{
l=i-1;temp=a[i];
while(l>=0&&a[l]>temp)
{
a[l+1]=a[l];
l–;
}
a[l+1]=temp;
}
我们也学习了二分法这种查找方法。
在数组这章我们学习了这些基本知识点以及方法后,可用来解决一系列问题:
对数组进行逆序重放以及倒置排序;
对数组中指定的数字或数字组成的数字进行计数;
对数组中特定位置的数进行交换等有规律的变换,以及进行加减运算;
对字符数组中的特定字符进行计数等。
学了本章,并在做了这章的题后,感觉这章的学习与应用对我们的逻辑思维的要求比前几章高了许多许多,有的题想半天也找不到思路,对于这章,我个人感觉要多看看例题,在自己已学的知识与方法下,看看别人的思路是怎样的,自己可以进行学习,然后再运用,总的来说,就是取他人之长来补自己之短吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值