初级光能
数组第一次课讲义
什么是数组: 相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用同一个名字命名,然后用编号区分他们的变量的集合。
这个名字称为数组名,编号称为下标,数组里面的每一个数称
为数组中的元素。
一维数组的定义:当数组元素只有一个下标时,我们称这样的数组为一维数组。 数组的定义格式如下:类型标识符 数组名[常量表达式],如:
int a[5]; //定义一个长度为 5 的整型数组 a
数组元素的引用:数组中的每一个元素都可以当做一个变量来使用
一维数组元素的引用格式:数组名[下标]
注意数组元素引用和数组定义的区别。例如:int a[5];
数组的特点: 1. 数组是相同数据类型的元素的集合如: int a[10]; //数组中的元素全部为整数类型
double a[10]; //数组中元素全部为实数类型
char a[10]; //数组中的元素全部为字符类型
2. 数组元素用整个数组的名字和它自己在数组中的顺序位置来表示,且数组是从 0 开始编号的。
例如,a[0]表示名字为 a的数组中的第一个元素,a[1]为数组 a 的第二个元素,以此类推...
一维数组课后讲义(二)
一、数组的初始化:
给数组中元素赋初值的操作称为数组的初始化。 数组的初始化有两种方法:
(1) 在定义的时候进行初始化: 格式:类型标识符 数组名[常量表达式] = {值1,值2,…};
如: int a[4]={1,2,3,4}; double b[3]={0.1,2,1.23}; char c[5]={'a','b','+','A','?'};
(2) 在输入的时候逐个元素进行初始化,如果数据量较大,需要借助for循环, 如: int a[100]; for(int i=0;i<=99;i++){ cin>>a[i]; }
特殊情况:如果要把数组的元素全部赋值为0,可以把数组定义在main函数 外,数组的所有元素自动初始化为0。
二、数组最大值的求取
int maxa=-1; //maxa定义为一个小于数组元素取值范围的数
for(int i=1;i<=n;i++)
{
cin>>a[i]; //输入元素
if( maxa < a[i] )//每输入一个元素就跟预设的maxa对比 maxa=a[i]; //比maxa还大的数就是新的最大值
}
cout<<maxa; //比较完得到整个数组的最大值
三、数组最小值的求取
int mina=10000000; //mina定义为一个大于数组元素取值范围的数
for(int i=1;i<=n;i++)
{
cin>>a[i]; //输入元素
if( mina > a[i] )//每输入一个元素就跟预设的mina对比
mina=a[i]; //比mina还小的数就是新的最小值
}
cout<<mina; //比较完得到整个数组的最小值
一维数组课后讲义(三)
一、课堂内容:
选择排序:
选择排序是一种简单直观的排序算法。
它的主要原理就是每一次从待排序的数据元素中选择最大(或最
小)的元素放到待排序序列的开头,依次确定第1位,第2位,第3
位,……,第n-1位元素(则最后第n位也确定了)。
最后序列中的元素就按照从大到小(或从小到大)的顺序排列好
了。
#include <bits/stdc++.h>
using namespace std;
int main()
{
//从大到小
int a[100001],n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
// i 从第一个元素到倒数第二个元素的下标
for(int i=1;i<=n-1;i++)
{
// j 从i后面的第一个元素到最后一个元素的下标
for(int j=i+1;j<=n;j++)
{
// 如果后面的数比较大,就交换到前面i的位置
if(a[j]>a[i])
{
swap(a[i],a[j]);
}
}
}
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
字符串课后讲义(二)
一、课堂内容:
1. empty 函数:
判断字符串是否为空字符串的函数:empty() ?
格式:字符串名.empty(); //如:s.empty(); ?
功能:若s为空串(只有结束符的字符串)则返回true/1,否则返 回false/0。 ?
如:string a="",b="123"; cout<<a.empty()<<endl; //输出为1 cout<<b.empty()<<endl; //输出为0 //别忘了加小括号
2. substr 函数:
截取子串函数:substr(开始截取的位置,截取的长度) ?
格式:字符串.substr(index,len); ?
功能:从字符串1中index下标所对应的元素开始,截取之后len 个长度的字符得到一个新的字符串常量,直接输出或者定义另外一 个字符串变量来进行存储,且原字符串不发生变化。
如:string a,b; a="hello"; b=a.substr(0,2); //截取a中从下标0开始的2个字符,赋值给b cout<<a<<endl; //输出为hello,原字符串不变 cout<<b; //输出为he
3. erase 函数:
删除部分字符串的函数:erase(开始删除的位置,删除的长度) ?
格式:字符串1.erase(index,len); ?
功能:删除字符串1中以index下标对应的元素为开始的len个长度 的字符。
如:string a; a="hello"; a.erase(0,2); //删除a中从下标0开始的2个字符 cout<<a<<endl; //输出为llo,原字符串改变
中级守护
讨论啥??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????