//⽣生成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相 加,放到另外⼀一个数组中
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ int num1[]={},num2[]={},num3[]={};
for (int i = ; i<; i++) {
num1[i]=arc4random()%+;
num2[i]=arc4random()%+;
num3[i]=num1[i]+num2[i];
printf("%d + %d = %d\n ",num1[i],num2[i],num3[i]);
}
printf("\n");
return ;
}

一维数组,数组排序,字符数组

一、一维数组

数组:相同数据类型的成员组成的一组数据

数组里只能放相同数据类型的数据

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

int a[3]={5,3,0};//int [3]为数据类型,a为变量名

数组元素的访问:数组名+下标。

数组下标:数组元素在数组中的序号。从0开始,到数组总个数-1;

下标可以是常量也可以是变量。int a[5]={2,7,4,3,0};      a[0]=2,a[3]=3;

 //⽣生成⼀一个具有20个元素的数组,每个元素的取值范围是30-70之间,求数组元素的和。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ //20个元素的数组
int number[]={},sum = ;
//随机数 arc4random()%41+30
for (int i = ; i<; i++) {
number[i]=arc4random()%+;
printf("%d ",number[i]);
sum = sum +number[i];
}
printf("\n%d",sum);
return ;
}
//⽣生成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相 加,放到另外⼀一个数组中
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ int num1[]={},num2[]={},num3[]={};
for (int i = ; i<; i++) {
num1[i]=arc4random()%+;
num2[i]=arc4random()%+;
num3[i]=num1[i]+num2[i];
printf("%d + %d = %d\n ",num1[i],num2[i],num3[i]);
}
printf("\n");
return ;
}

注意:系统不会检测数组元素的下标是否越界,编程时,必须保证数组下标不能越界

数组是一个整体,不能直接参加运算,只能对单个元素进行处理,通常用到数组的地方都会用到循环。

数组不能参加运算,只能对单个元素进行运算。

二、数组排序

冒泡排序:

 //随机输出0-30的数,并按从小到大排序
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ int num1[]={};
for (int i = ; i<; i++) {
num1[i]=arc4random()%;
printf("%d ",num1[i]); }printf("\n");
for (int i = ; i<; i++) {
for (int j = ; j<-i; j++) {
if (num1[j]>num1[j+]) {
// num1[j]=num1[j]^num1[j+1];
// num1[j+1]=num1[j]^num1[j+1];
// num1[j]=num1[j+1]^num1[j];
int temp = num1[j];
num1[j] = num1[j+];
num1[j+] = temp;
}
}
}
for (int i = ; i<; i++) {
printf("%d ",num1[i]);
}
return ;
}

三、字符数组

用于存放字符变量的数组称为字符数组

char c[10]={'i','p','h','o','n','e'};或者 char c[10]="iphone";

有‘\0’结束标识的字符数组也称为字符串。   系统提供了很多字符串处理函数

strlen()计算字符串长度                    strcpy()字符串拷贝             strcat()字符串拼接        strcmp()字符串比较

字符串长度:字符串的有效长度,不包含‘\0’

字符串所占的空间至少要比字符串长度大1,因为字符串以‘\0’表示结束,系统提供的字符串处理函数都是根据‘\0’来判断字符数组结束

 #import <Foundation/Foundation.h>

 int main(int argc, const char * argv[])
{ char name[]="zhangsan",name1[]="lisi";
// printf("%s length is %lu",name,strlen(name));//字符串长度
// strcpy(name1, name);//字符串拷贝
// strcat(name, name1);//字符串拼接输出zhangsanlisi
// printf("%s",name);
int result = strcmp(name, name1);
printf("%d\n",result);
if (result>) {
printf("%s 大于 %s",name,name1);
}else if(result==) {
printf("%s 等于 %s",name,name1);
}else {
printf("%s 小于 %s",name,name1);
} return ;
}

数组通常与循环结合使⽤用。

数组下标从0开始,最⼤大到数组容量-1。

 一定要注意下标越界问题。 

字符串数组在定义的时候一定要多留一个元素位置留 给’\0’。

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

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

    字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...

  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学习笔记---c语言第八天

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. js获取URL地址中的GET参数

    var $_GET = (function(){ var url = window.document.location.href.toString(); var u = url.split(" ...

  2. C# 小规模查找集合性能测试

    项目中包含浮点运算,大概每秒 20 - 100 万左右. 其计算结果每秒只包含1000个左右. 因此大量运算是重复性的.程序运行时,cpu 在 3% - 10% 浮动.打算将结果缓存.根据键值索值. ...

  3. Android listview 制作表格样式+由下往上动画弹出效果实现

    效果是这样的:点击按下弹出表格的按钮,会由下往上弹出右边的列表,按下返回按钮就由上往下退出界面. 布局文件: activity_main.xml <RelativeLayout xmlns:an ...

  4. IE和火狐 差异

    1.JavaScript中 1)IE和FireFox中childNodes的差别: <head> <script type="text/javascript"&g ...

  5. AFNetworking、MKNetworkKit和ASIHTTPRequest对比

    之前一直在使用ASIHTTPRequest作为网络库,但是由于其停止更新,iOS7上可能出现更多的问题,于是决定更换网络库. 目前比较流行的网络库主要有AFNetworking和MKNetworkKi ...

  6. ODI中的临时接口

    在ODI 11g及后续的版本中,针对复杂的ETL处理,可分解为多个步骤,在中间步骤中使用临时接口,而不用建立相应的物理表,ODI会在处理过程中自动创建和删除这些中间表,从而降低ETL处理复杂度:同时, ...

  7. 创建MySQL数据库和表(一)

    一.启动MySQL服务 1.在Windows操作系统的“服务”中启动,找到你安装MySQL的起的服务名称,我本机服务名的是MySQL. 2.在命令行中用命令启动: A.启动MySQL服务:net st ...

  8. table td的宽度详解

    前言:一直总觉得td的宽度好难驾驭,但万事万物总是有规律的.就像亮剑说的:不用因为怕八路就敬而远之,应该靠上去,熟悉他们,了解他们.   正文:           Table只有Table的宽度是可 ...

  9. iOS 设计模式之工厂模式

    iOS 设计模式之工厂模式 分类: 设计模式2014-02-10 18:05 11020人阅读 评论(2) 收藏 举报 ios设计模式 工厂模式我的理解是:他就是为了创建对象的 创建对象的时候,我们一 ...

  10. SQL实现字段内容查找和替换