二维数组的定义:

数据类型 数组名称 [ 常量表达式1 ] [ 常量表达式2 ] = {.....}

int a[ 2 ][ 3 ] ={

  {4,5,6},

  {7,8,0},                 //或者{7} 后面不写8和9 ,系统会默认的帮你添加0就是这样:{7,0,0}

};

OR:

int b[ 3 ][ 2 ] ={3,87,43,66,82,11,34 };

OR:

int b[][ 2 ] ={3,87,43,66,82,11,34 };    //行数可以不写,但是列数不写或者2个都不写就不行.

// int a[][] = {1,2,3,4,5,6,7};  错误.

// int a[2][] = {1,2,3,4,5,6,7};错误.

字符串数组

char 数组名称 [字符串个数][每个字符串内存中允许存放的最大值] ={....}

char  str[ 3 ][ 20 ] ={"ipad","ipod","iphone"};

字符串数组本质上是一个二维数组,访问某个字符串使用数组名称[第一维下标].

每个字符串的长度不能超过第二维度的长度-1。

比如说:

char str2[ 3 ][ 20 ] ={"luoshuailuotingluomama","ipod","ipad"};

第二维度为20,20-1 =19,但是第一个字符串就超过了19.

char str2[ 3 ][ 20 ] ={"luoshuailuotingluomamadddddddssssssss","ipod","ipad"};     //不会报错,但是会警告.

for (int i =0 ; i < 3; i++ ) {

printf("The end of Result :%s\n",str2[i]);

}

思考一个问题 :

创建一个字符串数组,对字符串 (英⽂)从小到大排序

  char  str[5][20] ={"ipad","ipod","iphone","main","luoshuai"};

  char temp[] ={0};

  int length =strlen(str);

  for(int i =0 ;i < length-1 ; i++ ){

    for(int j =0 ;j<length-i-1;j++){

      if(  strcmp( str[j] ,str[j+1] )  > 0 ){  

         strcopy(temp,str[j]);

         strcopy(str[j],str[j+1]);

         strcopy(str[j+1],temp);

      }

}

}

for(int i =0 ; i < length;  j++){

  printf("The end of Result : %s\n",str[i]);

}

选择排序法  

他的算法就是:将第一个与后面所有数字比较,如果找到比它还小的,两两数字交换.一轮下来最小值找到了.

 第二轮从第二个数字开始,与上面步骤相同.

int array[7] ={23,36,45,57,69,35,88};

for ( int i = 0; i < 7 ; i++) {

for (int j = i+1 ; j < 7; j++) {

if (array[i]  > array[j]) {

 int temp = array[i];

             array[i] =array[j];

array[j]  =temp;

}

}

}

优化版:可以省去很多不必要的循环:

for ( int i = 0;i < 6;i++) {     //外层循环 控制趟数,为个数减1. i= 0时候

int flag = 0 ;  //设置一个标记,如果两辆数字进行交换,我们就设置为1,

for (int j = i+1 ; j < 7; j++) {    //从第二个数,第三个..数分别与i=0数字比较.

if (array[i]  > array[j]) {     //i=0 分别与后面所有的比较一次,交换. j从1 开始 j<7  刚好内部循环6次.

  int temp = array[i];        //i=1的时候,j从下标2开始 j< 7 刚好循环5次

  array[i] =array[j];

  array[j]  =temp;

   flag = 1;

  }

}

//printf("循环的次数为:%d\n",(i+1));

if( !flag ){

  break;

 }

}

for (int i = 1; i< 7 ; i++) {    //输出数字.

printf("The end  of Result : %d\n",array[i]);

}

C语言基础05的更多相关文章

  1. Java入门 - 语言基础 - 05.基本数据类型

    原文地址:http://www.work100.net/training/java-basic-datatype.html 更多教程:光束云 - 免费课程 基本数据类型 序号 文内章节 视频 1 概述 ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  3. javascript基础05

    javascript基础05 1.变量的作用域 变量既可以是全局,也可以是局部的. 全局变量:可以在脚本中的任何位置被引用,一旦你在某个脚本里声明了全局变量,你就可以 在这个脚本的任何位置(包括函数内 ...

  4. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  5. C语言基础(转载自大海笔记)

    # C语言基础2015年03月26日10:04:411.    语言排行榜C——java——objective-C2.    进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...

  6. 01_C语言基础

    内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...

  7. Go语言基础之time包

    Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法. Go语言中导入包 Go语言中使用import关键字导入包,包的名字使用双引号(”)包裹 ...

  8. D14——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...

  9. D05——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...

随机推荐

  1. linux软件安装(rpm,源码编译)

    1.rpm(redhat package manager)管理器主要目的在于解决软件的安装.卸载.升级.查询.验证等,例如升级过程中,保留软件的配置文件,安装过程中,检查软件依赖的库文件,以及卸载过程 ...

  2. HC-MAC: A Hardware-Constrained Cognitive MAC for Efficient Spectrum Management

    IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 26, NO. 1, JANUARY 2008 正如上篇文章提到的,这篇论文设计的Mac协 ...

  3. 在Git中一定要关注的crlf自动转换

    GitHub 第一坑:换行符自动转换 如果你已经做出了错误的选择,也不需要重新安装,可以直接使用命令行来修改设置.很简单,直接打开这货自带的命令行工具 Git Bash,输入以下命令,再敲回车即可: ...

  4. Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)

    *Delphi之通过代码示例学习XML解析.StringReplace的用法 这个程序可以用于解析任何合法的XML字符串. 首先是看一下程序的运行效果: 以解析这样一个XML的字符串为例: <? ...

  5. 【Xamarin挖墙脚系列:Xamarin的终极破解步骤(更新)】

    前面文章中,我们可以找到对应版本的补丁. Xamarin的 4.0.1717 版本,在补丁的地址中,有作者整理的全部的安装包.迅雷磁力贴: magnet:?xt=urn:btih:9FD298AA61 ...

  6. 仿新浪微博短网址PHP实现方案

    微博限制140字,但是我们知道有时需要分享一个类似淘宝商品的链接,很长,为了避免这个问题,所有了短网址的概念,废话不多说,直接把我的实现方案分享一下: 1)将长网址md5生成32位签名串,分为4段, ...

  7. c++ ifstream ofstream 文件流

    #include <fstream>ofstream //文件写操作 内存写入存储设备 ifstream //文件读操作,存储设备读区到内存中fstream //读写操作,对打开的文件可进 ...

  8. UESTC_树上的距离 2015 UESTC Training for Graph Theory<Problem E>

    E - 树上的距离 Time Limit: 2000/1000MS (Java/Others)     Memory Limit: 262143/262143KB (Java/Others) Subm ...

  9. java Socket 使用注意

    Socket s = new Socket(ia, port); BufferedOutputStream bufOut = new BufferedOutputStream(s.getOutputS ...

  10. oracle常见错误类型

    http://www.cnblogs.com/whyhappy/p/6232258.html