C语言基础05
二维数组的定义:
数据类型 数组名称 [ 常量表达式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的更多相关文章
- Java入门 - 语言基础 - 05.基本数据类型
原文地址:http://www.work100.net/training/java-basic-datatype.html 更多教程:光束云 - 免费课程 基本数据类型 序号 文内章节 视频 1 概述 ...
- 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)
索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...
- javascript基础05
javascript基础05 1.变量的作用域 变量既可以是全局,也可以是局部的. 全局变量:可以在脚本中的任何位置被引用,一旦你在某个脚本里声明了全局变量,你就可以 在这个脚本的任何位置(包括函数内 ...
- 【GoLang】GO语言系列--002.GO语言基础
002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...
- C语言基础(转载自大海笔记)
# C语言基础2015年03月26日10:04:411. 语言排行榜C——java——objective-C2. 进制:进制:进位机制.用普通的话讲,应该为人为的定义一种度量来标识一样东西 ...
- 01_C语言基础
内容提要: 1. C语言概述2. 数据类型.运算符与表达式3. C语言程序结构 4. VC6.0使用练习 知识详解01:C语言的历史 1. C语言与其它语言比较 汇编语言: (1).可直接对硬件进行操 ...
- Go语言基础之time包
Go语言基础之time包 时间和日期是我们编程中经常会用到的,本文主要介绍了Go语言内置的time包的基本用法. Go语言中导入包 Go语言中使用import关键字导入包,包的名字使用双引号(”)包裹 ...
- D14——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D14 20180919内容纲要: 1.html认识 2.常用标签 3.京东html 4.小结 5.练习(简易淘宝html) 1.html初识(HyperText ...
- D05——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...
随机推荐
- PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\Users\\video\\AppData\\Local\\Temp\\tmpfipzk8ma'--问题解决
学习python+selenium总是遇到各种问题 代码如下: from selenium import webdriverbrowser = webdriver.PhantomJS() #浏览器初始 ...
- LFS,编译自己的Linux系统 - 包和补丁
建立工作目录 我们先建立一个工作目录,用于存放下载的源代码和对源代码进行编译. sudo mkdir –v /mnt/lfs/sources sudo chmod –v a+wt /mnt/lfs/s ...
- information_schema.optimizer_trace学习
information_schema.optimizer_trace 用于追踪优化器的优化过程:通常来说这张表中是没有数据的,要想开户追踪要把 @@session.optimizer_trace='e ...
- C51编译器的扩展关键字
附表1-1 ANSIC标准关键字 附表1-2 C51编译器的扩展关键字
- 【Xamarin挖墙脚系列:Xamarin 上台讲述PPT呵呵呵】
http://pan.baidu.com/s/1kUrwQft
- UESTC_冰雪奇缘 CDOJ 843
艾莎女王又开始用冰雪魔法盖宫殿了. 她决定先造一堵墙,于是释放魔法让形为直角梯形的冰砖从天而降,定入冻土之中. 现在你将回答女王的询问:某段冻土上冰砖的面积. 注:多块冰砖之间会互相重叠,重叠部分要多 ...
- [Leetcode][Python]56: Merge Intervals
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 56: Merge Intervalshttps://oj.leetcode. ...
- 《Java web 开发实战经典》读书笔记
去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...
- 【LeetCode练习题】Maximum Depth of Binary Tree
Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. The maximum depth is the n ...
- apache FtpServer 整合spring部署
我们在项目中可能会出现这样的需求,使用ftp上传很大的文件后对需要对文件进行相应的逻辑处理,这时我们可以使用apache ftpServer来处理这段逻辑,只要我们做相应的部署和编写我们的逻辑代码,这 ...