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

深圳电子烟网站建设最近三天的新闻大事小学生

深圳电子烟网站建设,最近三天的新闻大事小学生,abc网站建设是什么,网站建设的途径数组 数组名代表的是数组在内存中的起始位置,即首元素的地址,而下表表示的则是该元素相对数组起始位置的偏移量 一维数组 1.定义 类型名 数组名[数组长度] int a[100]; //整型数组长度为101,数组名为a char b[100];//字符型数组长度为101&…

数组

数组名代表的是数组在内存中的起始位置,即首元素的地址,而下表表示的则是该元素相对数组起始位置的偏移量

一维数组

1.定义

类型名 数组名[数组长度]

int a[100]; //整型数组长度为101,数组名为a 
char b[100];//字符型数组长度为101,数组名为b 
double c[100];//实型数组长度为101,数组名为c 

类型名在简单的c程序设计已经提到

2.数组名

数组名整个数组的标识符,数组名可以看作一种特殊的变量名,需要遵循变量名的命名规则

3.数组长度

数组长度指出数组中可以包含元素的个数,数组长度通常是一个整型或者常量表达式

4.数组名[下标]

下标可以使用整型常量、变量、表达式

下标的取值范围为[0,数组长度-1]

一维数组的初始化

1.数组声明的两种类型

若数组声明为静态储存类型,则数组所有元素被初始化为0

static int a[100];

若数组声明为自动储存类型,则数组所有元素为垃圾值

int a[100];

2.初始化格式

类型名 数组名[数组长度]={初值表}

int a[100]={0};//全部元素都为0

如果初值表中的数据个数比数组长度少,那么数组中剩余元素赋值为0

int b[100]={1,2,3};//b[0]为1,b[1]为2,b[2]为,其余元素为0

若对全部元素赋值,则省略数组长度

int c[2]={0,1,2};
//可以改为
int c[2]={0,1,2}; 

当数组作为函数参数时

因为数组名即代表数组首元素的地址,因此使用数组名作形参即可传递

若定义函数时声明了数组的长度,则表示只能把固定长度的数组传入

若定义函数时未声明数组的长度,则表示可以把任意长度的数组传入

int a[100];
void convert(int a[]);//函数的定义(未表明数组长度)
convert(a);//调用数组a 
int a[100];
void convert(int a[100]);//函数的定义(表明数组长度)
convert(a);//调用数组a 

二分法查找元素

若在较大的数组中快速的查找元素使用for循环语句逐个查找是非常耗时的

那么使用二分法查找则可以大大节约查找时间,避免时间超限

二分法原理

比如数组a[n]中查找元素x,并返回其下角标

则可以将数组分为两大部分

定义low为最小下角标,high为最大下角标

mid=(low+high)/2;

判断x是否等于a[n/2]

如果x==a[n/2],则结束查找,返回mid值

如果x>a[n/2],

low=mid+1;

mid=(low+high)/2;

继续查找

如果x<a[n/2],

high=mid-1;

mid=(high+low)/2;

继续查找

可以编一个递归函数来实现二分查找

int search(int a[],int x,int low,int high)
{if(low>high){return -1;//数据错误 } else//若数据正确 {int mid=(low+high)/2;{if(a[mid]==x)//查找到x {return mid;} else if(a[mid]>x)//在mid左边查找 {return search(a,x,low,mid-1);}else if(a[mid]<x)//在mid右边查找 {return search(a,x,mid+1,high);}}} 
} 

二维数组

1.定义

类型名 数组名[行数][列数]

int a[10][10];
//创建一个10*10的矩阵
从a[0][0]-------------a[0][9]|                   ||                   ||                   ||                   ||                   ||                   ||                   ||                   |a[9][0]--------------a[9][9]

在二维数组中

行数下标的取值范围为[0,行数-1]

列数下标的取值范围为[0,列数-1]

2.二位数组的初始化

分行初始化

int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

输出数组

1 2 3
4 5 6
7 8 9

也可以部分元素赋值,不赋值的元素为0

int a[3][3]={{1,2},{4},{7,8,9}};

输出结果

1 2 0
4 0 0
7 8 9

顺序初始化

int a[3][3]={1,2,3,4,5,6,7,8,9};

输出结果

1 2 3
4 5 6
7 8 9

也可以省略行数进行初始化,编译器会根据元素的个数自动分配元素

int a[][3]={1,2,3,4,5,6,7,8,9};

输出结果同上

数组做函数参数

1.一维数组做函数参数,数组长度可以省略

2.二维数组做函数参数,只有第一维数组长度可省略,第二位不可省略 

字符数组

 1.定义

char 数组名[数组长度]

char a[100];定义一个长度为101的字符型数组

 2.初始化

逐个

char a[5]={'H','e','l','l','o'};

整体

char a[]={"Hello"};

 在进行初始化时,系统会自动加上'\0'

因此在输入字符串char a[]={"Hello"};后,其实际长度为6

3.输入与输出

可以利用for循环进行逐个输入,利用%c

char a[100];
for(int i=0;a[i]!='\0';i++)
{scanf("%c",&a[i]);
}

也可以用%s进行整个字符串的输入

char a[100];
scanf("%s",a);//注意此时后面所跟为数组名,不必再加& 

在使用%s进行输入时,遇到'\0' 会自动截断,只能用于输入连续的字符串

那么输入不连续的字符串该怎么办呢?使用gets

char a[100];
gets(a);

输出呢?对应的有

for循环逐个输出

for(int i=0;a[i]!='\0';i++)
{printf("%c",a[i]);
}

 %s直接输出字符串

printf("%s",a);

 直接输出字符串

puts(a);

http://www.hkea.cn/news/320582/

相关文章:

  • 网站建设软件设计推广官网
  • 网站运营阶段站长之家app
  • discuz网站标题百度广告推广价格
  • 广州学校论坛网站建设疫情排行榜最新消息
  • 古董手表网站网络营销的主要方式和技巧
  • 做公司网站要那些资料百度电脑版下载官方
  • 定州网站建设公司企业网站源码
  • 0基础1小时网站建设教程如何给自己的公司建网站
  • 成都网站建设s1emens电商平台怎么加入
  • 六合哪家做网站建设域名注册查询软件
  • 网站建设的方案费用2023年新冠疫情最新消息
  • 九星市场做网站快速将网站seo
  • 长春做网站推广的公司提升神马关键词排名报价
  • 金融网站cms百度网盘客服电话人工服务
  • 美观网站建设物美价廉seo网站优化专员
  • 网站设计应该怎么做推广软文代写
  • 网站建设工作室发展百度收录教程
  • 没有网站 可以做百度口碑吗成都网站制作
  • 医院系统网站建设百度宁波营销中心
  • 网站劫持代码杭州互联网公司排名榜
  • 做网站找哪个部门吸引人的推广标题
  • 网站制作软件名字线做竞价推广代运营公司
  • avada如何做中英文网站沈阳百度推广排名优化
  • 做网站品长沙网络营销公司排名
  • b2b商贸网站环球网最新消息疫情
  • wordpress next主题什么是seo教程
  • 如何规划一个网站快手秒赞秒评网站推广
  • 中国网站开发网站seo需要用到哪些工具
  • 织梦做的网站首页出现空白网页平台做个业务推广
  • 备案做电影网站吗yandx引擎入口