二维数组   字符串数组   多维数组

二维数组的定义

类型  数组[常量表达式1][常量表达式2]={值1,值2...};

int a[2][3] = {7,8,3,2,8,5};

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{ float a[][] = {{2.5},{3.3},{2.1,4.8}};
for (int i = ;i< ;i++){
for (int j = ; j<; j++) {
// printf("%.2f ",a[i][j]);//输出2.50 0.00 0.00 0.00 3.30 0.00 0.00 0.00 2.10 4.80 0.00 0.00
printf("%g\t",a[i][j]);//输出2.5 0 0 0 3.3 0 0 0 2.1 4.8 0 0
}
printf("\n");
}
return ;
}
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
int a[][] = {},b[][];
for (int i = ; i<; i++) {
for (int j = ; j<; j++) {
a[i][j] = arc4random()%;
printf("%d\t",a[i][j]); }printf("\n");
}
printf("\n");
for (int i = ; i<; i++) {
for (int j = ; j<; j++) {
b[i][j]=a[j][i];
printf("%d\t",b[i][j]);
}printf("\n");
}
return ;
}
//输出:(数字随机)
//2 1 10 19
//21 10 26 23
//18 26 14 18
//
//2 21 18
//1 10 26
//10 26 14
//19 23 18
 //有一个3⾏行4列的⼆二维数组,要求编程找出最 ⼤大元素,并输出所在的⾏行和列。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{
int a[][] = {},max=;
// int k,l;
for (int i = ; i<; i++) {
for (int j = ; j<; j++) {
a[i][j] = arc4random()%+;
printf("%d\t",a[i][j]);
if (max<a[i][j]) {
max=a[i][j];
// k=i;
// l=j;
}
}printf("\n");
}
printf("%d ",max);
for (int i = ; i<; i++) {
for (int j = ; j<; j++) {
if (a[i][j]==max) {
printf("第%d行,第%d列",i+,j+);
}
}
} // printf("%d %d %d",max,k+1,l+1);
return ;
}

二维数组定义时,可以不指定第一维的长度,但必须给定第二维:int a[][3]={1,2,3,4,5};

元素个数不足,会自动补齐。

二、字符串数组

用于存放字符串的数组称为字符串数组      字符串:字符数组

定义字符串数组

char 数组名[常量表达式1][常量表达式2]={值1,值2...};

char strings[3][10]={"iphone","android","win8"};

字符串数组元素访问

1.访问某个字符串   数组名[第一维下标]

2.访问某个字符      数组名[第一维下标][第二维下标]

//字符串排序
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{
char name[][]={"lidfgdfi","shdfgdg","shidfgren","zhfdggsr","lidrrgo"}; for (int i = ; i<; i++) {
for (int j=; j<-i; j++) {
if(strcmp(name[j], name[j+])>)
{char temp[]={};
strcpy(temp, name[j]);
strcpy(name[j], name[j+]);
strcpy(name[j+], temp); }
}
}
for (int i=; i<; i++) {
printf("%s\n",name[i]);
} return ;
}

注意事项

字符串数组实为字符型二维数组

每个字符串长度不可超过第二维长度-1

每个字符串用数组名加一维下标表示

三、多维数组

数组下标在2个或2个以上时,该数组为多维数组    int a[2][4][3]={0}; 表示整型的三维数组,2层4行3列,元素个数为2*4*3=24个

三维数组的遍历

for(int i = 0; i < 层数; i++){


for(int j = 0; j < ⾏行数; j++){

for(int k = 0; k < 列数; k++){


a[ i ][ j ][ k ] = xxx;

}

}

}

iOS学习笔记---C语言第五天的更多相关文章

  1. iOS学习笔记---oc语言第五天

    字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...

  2. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  3. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  4. iOS学习笔记---oc语言第一天

    第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   ...

  5. iOS学习笔记---c语言第八天

    指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=nul ...

  6. iOS学习笔记---c语言第二天

    一.bool布尔类型    c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...

  7. iOS学习笔记---oc语言第十天

    内存管理高级 一 属性的内部实现原理   assign   retain    copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...

  8. iOS学习笔记---oc语言第九天

    初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...

  9. iOS学习笔记---oc语言第六天

    Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...

随机推荐

  1. mysql的REGEXP 和like的详细研究和解释

    1 regexp ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配任何字符(包括回车和新行) a* 匹配0或多个a字符的任何序列 a+ 匹配1个或多个a字符的任何序列 a? 匹配0个或1个 ...

  2. treap codevs 4543普通平衡树

    #include<cstdio>#include<ctime>#include<cstdlib>struct shu{ int l,r,sum1,zhi,dui,s ...

  3. ARC 类型转换:显式转换 id 和 void *

    http://blog.csdn.net/chinahaerbin/article/details/9471419 /* * ARC有效时三种类型转换: */ 1.__bridge           ...

  4. JAVA中StringBuffer类常用方法详解

    String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串 ...

  5. Java 语言基础

    基础常识 常用的DOS命令 dir :    列出当前目录下的文件以及文件夹md :   创建目录rd :     删除目录cd :    进入指定目录cd.. :  退回到上一级目录cd\:    ...

  6. IT公司100题-10-翻转句子中单词的顺序

    问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world ...

  7. 【STL】-迭代器的用法

    初始化: list<char>::iterator pos; 算法: 1. 遍历 for(pos = col1.begin(); pos != col1.end(); ++pos){... ...

  8. 用Qt实现简单的视频播放器

    ui 在.pro文件中添加 QT +=phonon 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> ...

  9. Android调用Sqlite数据库时自动生成db-journal文件的原因

    数据库为了更好实现数据的安全性,一半都会有一个Log文件方便数据库出现意外时进行恢复操作等.Sqlite虽然是一个单文件数据库,但麻雀虽小五脏俱全,它也会有相应的安全机制存在 这个journal文件便 ...

  10. 表(list)

    表 表(list)是常见的数据结构.从数学上来说,表是一个有序的元素集合.在C语言的内存中,表储存为分散的节点(node).每个节点包含有一个元素,以及一个指向下一个(或者上一个)元素的指针.如下图所 ...