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

wap网站域名百度为什么不收录网站的某个版块

wap网站域名,百度为什么不收录网站的某个版块,网站精简布局,大连零基础网站建设教学服务一、数组的引入​在程序设计中,当需要保存数据时,若数据量较少,可通过单个变量来实现。例如,保存一个人的年龄,创建一个 int 类型变量即可,如int age 21;保存一个人的三门课成绩,创…

一、数组的引入​

        在程序设计中,当需要保存数据时,若数据量较少,可通过单个变量来实现。例如,保存一个人的年龄,创建一个 int 类型变量即可,如int age = 21;保存一个人的三门课成绩,创建三个 float 类型变量,如float score1, score2, score3。但当需要保存像一个人 15 门课程的成绩这样较多同类型数据时,就需要引入新的知识点 —— 数组。​

二、数组的概念​

(一)定义​

        数组是相同类型、有序数据的集合。​

(二)特征​

        数组中的数据称为数组的元素,其实就是数组的每一个匿名的变量空间,且所有元素类型一致,即同构。​

        数组中的元素存放在连续的内存空间中,例如char player_name[6]是在内存中开辟 6 块连续的基于 char 型的变量空间。​

        衍生概念下标(索引):代表了数组中元素距离第 1 个元素(首地址所在的元素)的偏移量。数组的下标从 0 开始,数组的最大下标等于数组的元素个数(数组的大小或容量)。​

三、一维数组​

(一)定义​

语法:数据类型 数组名 [数组容量];​

说明:​

        数组的数据类型由数组中的元素类型决定,同一个数组中所有元素类型一致。​

        数组名是标识符,命名规则与变量规则一样,区别是变量用单数,数组用复数,即以字母或者下划线开头,后面只能跟字母、数字、下划线。​

        数组容量又称常量表达式,其值必须是整数。在 C89 标准中只支持常量和符号常量,不支持变量;C99 标准引入变长数组(VLA)概念,可使用变量,数组在运行时决定大小,但数组创建后大小不会因变量值改变而改变。例如:

#define SIZE 5 // 符号常量,使用宏定义
int length = 5; // 变量
int arr1[5]; // 常量(字面量)正确
int arr2[SIZE]; // 符号常量,正确
int arr3[length];// 变量,C89错误,C99标准下正确

(二)数组元素默认值​

        全局作用域和 static 修饰的变量,元素默认值是 0,其中整型和浮点型默认值为 0,字符型默认值是 '\0'(对应的 ASCII 码为 0)。​

        局部作用域的元素默认值是随机值,强烈建议初始化。​

(三)数组元素的访问​

原则:数组中的元素不能一次性访问所有,只能一个一个访问。​

语法:​

        取值:数组名 [下标];​

        赋值:数组名 [下标] = 值;​

        注意:访问时不能下标越界,否则会报下标越界异常。​

(四)数组的初始化​

说明:定义数组时,用指定的数据给对应的元素赋值。​

语法:数据类型 数组名 [数组容量] = {...};​

相关情况:​

        部分初始化:给数组中的前几个元素初始化,未被初始化的元素系统自动初始化为 0。例如int arr[10] = {11,12,13,14,15},剩余元素默认为 0。​

        数组根据初始化的元素自动分配大小:定义数组时未指定数组容量,系统会根据初始化的元素个数决定容量。例如int arr[] = {11,12,13,14,15}等价于int arr[5] ={11,12,13,14,15}。​

需求:利用循环给数组元素 a [0]~a [9] 赋值 0~9,并逆序输出。

(五)案例​

需求:利用循环给数组元素 a [0]~a [9] 赋值 0~9,并逆序输出。

#include <stdio.h>
int main(int argc, char *argv[])
{// 创建一个数组,用来存放0~9int arr[10];// 计算数组的大小:数组大小 = 数组所有元素的总字节数 / 每一个元素的字节数,需要使用到sizeof运算符int len = sizeof(arr) / sizeof(arr[0]);// 通过for循环给数组赋予0~9for (int i = 0; i <= 9; i++) arr[i] = i;// 逆序输出数组中的元素:数组最大下标 = 数组大小 - 1// 使用for循环获取数组每一个元素称之为数组的遍历for (int j = len -1; j >= 0; j--) printf("%4d", arr[j]);printf("\n");return 0;
}

需求:求斐波拉契数列,限制在 20 个。

#include <stdio.h>
int main(int argc,char *argv[])
{// 定义循环变量int i;// 定义一个数组,用来存储20个数列int f[20] = {1,1};// 计算数组的大小int len = sizeof(f) / sizeof(f[0]);// 通过一个for循环完成数列for (i = 2; i < len; i++) f[i] = f[i-1] + f[i-2]; // {1,1,2,3}// 遍历数组for (i = 0; i < len; i++){// 1行显示5个数if (i > 0 && i % 5 == 0) printf("\n");printf("%8d",f[i]);}printf("\n");return 0;
}

需求:从键盘输入年、月、日,计算并输出该日是该年第几天。

#include <stdio.h>
int main(int argc,char *argv[])
{// 首先创建一个数组,用来存放每一个月的天数,因为二月特殊,初始化的时候,默认为平年天数。int t[] = {31,28,31,30,31,30,31,31,30,31,30,31};// 从控制台输入年,月,日int year,month,day;printf("请输入年份、月份、天(yyyy-MM-dd):");scanf("%d-%d-%d", &year, &month, &day);// 闰年校验:如果是闰年,就修改数组中二月份对应的天数(平年:28天,闰年:29天)。if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) t[1] = 29;// 定义一个变量,用来记录天数,默认就是我们输入的天数。int sum = day;// 遍历数组,将输入月份之前的每一个月的天数取出来加到记录天数的变量中。for (int i = 0; i < month - 1; i++) sum += t[i];// 将统计后的天数打印输出。printf("%d月%d日是%d年的第%d天!\n", month, day, year, sum);return 0;
}

四、排序算法:冒泡排序​

(一)排序思想(向前冒泡)​

        一次只排好一个元素,针对 n 个元素,最差情况需要 n-1 次,最好情况需要 0 次(交换位置)。​

        每次排序假定第一个元素是最大或者最小的,然后相邻的两个元素依次进行比较,遇到较大或者较小的元素进行交换,访问完数组的最后一个元素,就排好了一个数。​

        在余下的元素中,再次应用第 2 步操作,直到只剩下 1 个数。​

(二)总结​

        轮数 = 元素个数(数组大小)- 1,可通过外层 for 循环实现轮数遍历。​

        每一轮比较次数 = 元素个数 - 轮数 - 1,可通过内层 for 循环实现每一轮次数遍历。​

        交换两个数需引入临时变量 temp,步骤为:int temp = a; a = b; b = temp;​

(三)代码示例

#include <stdio.h>
int main(int argc,char *argv[])
{// 创建一个数组,用来存放冒泡排序的数列int arr[10];// 定义循环变量和临时变量、是否升序排序,默认降序int i,j,temp,desc = 1;printf("请输入10个整数:\n");// 计算数组的大小int len = sizeof(arr) / sizeof(arr[0]);// 通过控制台依次录入10个数字for (i = 0; i < len; i++) scanf("%d", &arr[i]);// &arr[i]:[]的优先级高于&,[]跟arr结合,获取数组中的某个元素,再跟&结合,对这个元素取地址printf("\n排序前:");for (i = 0; i < len; i++) printf("%-4d", arr[i]);printf("\n");// 冒泡排序// 外层循环:实现排序轮数的遍历:轮数 = 数组大小 - 1for (i = 0; i < len - 1; i++){// 设置一个flag,用来判断数组是否已经有序int flag = 0;// 内层循环:实现每一轮的比较次数:比较次数 = 数组大小 - 本轮轮数 - 1for (j = 0; j < len - i -1; j++){// 相邻的两个数比较后,如果满足交换条件,就要交换位置// 降序排序: if(arr[j] < arr[j+1])// 升序排序:if(arr[j] > arr[j+1])if (desc){// 降序if(arr[j] < arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;flag = 1;}}else{// 升序if(arr[j] > arr[j+1]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;flag = 1;}}}if(!flag) break;// 如果进行了1轮之后flag还是等于0,则说明排序数列已经有序,后续轮数不再继续}printf("\n排序后:");for(i = 0; i < len; i++) printf("%-4d", arr[i]);printf("\n");return 0;
}

         衍生排序算法:鸡尾酒排序、摇坠排序、摇床排序、搅拌排序等。


文章转载自:

http://PcTx0xAu.crqpL.cn
http://mJZP6m36.crqpL.cn
http://MoWHddBV.crqpL.cn
http://0PJTS6en.crqpL.cn
http://OlNfzXtJ.crqpL.cn
http://Dvkuj6XQ.crqpL.cn
http://o9lebNTc.crqpL.cn
http://fBAH99MS.crqpL.cn
http://mc31cWmz.crqpL.cn
http://7BkW7Umo.crqpL.cn
http://ODmZD4EJ.crqpL.cn
http://iIIyCZLR.crqpL.cn
http://fVUqg9JC.crqpL.cn
http://uN6tFy1z.crqpL.cn
http://MbWZT1gi.crqpL.cn
http://U6Y2LNIq.crqpL.cn
http://YplMZey2.crqpL.cn
http://qee3gLG8.crqpL.cn
http://2zMxxap0.crqpL.cn
http://IVf50TfN.crqpL.cn
http://OGGHEjqQ.crqpL.cn
http://5rrqyNxj.crqpL.cn
http://qzjWClJi.crqpL.cn
http://Gty1SIhA.crqpL.cn
http://VoUKsJHT.crqpL.cn
http://v6DxHZyh.crqpL.cn
http://fM22KDi7.crqpL.cn
http://e9TZb6w5.crqpL.cn
http://61D5rJor.crqpL.cn
http://pTBxuxsj.crqpL.cn
http://www.dtcms.com/wzjs/667854.html

相关文章:

  • 网站设计制作视频开发app需要多少钱?
  • 十大免费ppt网站软件公众号取名简单大气
  • 辽阳专业网站开发公司服装网站建设进度及实施过程
  • 可以做外链网站网站建设好后有些什么资料
  • 广州建设网站哪个好计算机培训班哪些好
  • 网站建设需要的软件是什么平江外贸推广软件
  • 河南建设网站公司简介电商软件开发费用
  • 建设银行深圳分行网站计算机专业主要学什么学科
  • 多少钱算网站营销策略制定
  • 筑巢网络官方网站网站权重多少比较好
  • 建立网站如何给自己的公司建网站
  • 学校网站怎么做的好软件开发制作平台
  • 登封网站设计百度站长平台怎么用
  • 长春网站设计哪里设计公司vi
  • 小程序登录不上去怎么办河源市seo推广
  • 做盗版音乐网站做网站哪家公司比较好而且不贵
  • 容桂销售型网站建设手机网站图片切换特效
  • 仿站视频教程网页登陆界面怎么做
  • 网站的营销方案金塔凯元建设集团有限公司官方网站
  • 一个服务器可以做两个网站门户网站怎么创建
  • 资源站建站技术杭州制作网站企业
  • 深圳华南城网站建设我想在百度上发布广告怎么发
  • h5个人网站代码上海品牌营销咨询公司
  • 手机网站 生成app公司做网站可以用个人域名
  • 宏润建设集团有限公司网站重庆建筑信息网官网
  • 温州联科网站建设中国成熟iphone
  • 如何网站建设团队如何做好网络营销管理
  • 开发区网站开发语言免费送网站
  • 关于网站的建设论文户外网站模板
  • 嘉兴网站建设正规公司有没有找项目的网站