//⽣生成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. 常州培训 day7 解题报告

    最后一天..有些感慨,这七天被虐的感动万分 第一题: 题目大意: 求出 n*i(i=1,2,3....n) mod p的逆元  n<p<=3000000 ,p是质数. 之前写过了,懒得再写 ...

  2. Android Phonebook编写联系人UI加载及联系人保存流程(一)

    2014-01-06 17:05:11 将百度空间里的东西移过来. 本文适合ROM定制做Phonebook的童鞋看,其他人飘过即可- Phonebook添加/编辑联系人UI加载及保存联系人流程,是一系 ...

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

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

  4. QuartZ的线程锁

                                                                                                ;        ...

  5. Mvc学习--1

    1.缓存机制[OutputCache(Duration=10)] 后面的 duration 表示缓存时间 直接放在action上面 是一个特性2.文件上传 @using (Html.BeginForm ...

  6. acvitity的日常 启动模式(上)

    1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动作进行跳转设计.比如说,一个电话 ...

  7. 纯JS文本在线HTML编辑器KindEditor

    KindEditor(http://www.kindsoft.net)是一款比较专业,主流,好用的在线HTML编辑器. 它除了可以将文本进行编辑.将Word中的内容复制进来外,本身还可以拖动缩放(右下 ...

  8. switch… case 语句的用法(二)

    总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找d ...

  9. [Java]Java简介

    Java版本历史 1995年5月23日,Java语言诞生 1996年1月,第一个JDK1.0诞生 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术 1996年9月,约8.3 ...

  10. SharePoint 2013 开发——APP安全模型

    博客地址:http://blog.csdn.net/FoxDave 除非开启了SharePoint网站的匿名访问,否则对于入站的请求,必须要有一个身份验证的过程(Authentication),这个 ...