iOS学习笔记---C语言第四天
//⽣生成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语言第四天的更多相关文章
- iOS学习笔记---oc语言第四天
字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- iOS学习笔记---c语言第八天
指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=nul ...
- iOS学习笔记---oc语言第五天
字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...
- iOS学习笔记---oc语言第一天
第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++ java ...
- iOS学习笔记---c语言第二天
一.bool布尔类型 c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...
- iOS学习笔记---oc语言第十天
内存管理高级 一 属性的内部实现原理 assign retain copy assign 下的属性内部实现 setter方法 @property(nonatomic,assign)NSS ...
- iOS学习笔记---oc语言第九天
初级内存管理 iOS应用程序出现crash(闪退),90%以上是内存问题////其他:数组越界,方法只声明没实现 内存问题体现在两个方面:内存溢出\野指针异常 内存溢出:程序运行超出内存上限 野指针异 ...
随机推荐
- 常州培训 day7 解题报告
最后一天..有些感慨,这七天被虐的感动万分 第一题: 题目大意: 求出 n*i(i=1,2,3....n) mod p的逆元 n<p<=3000000 ,p是质数. 之前写过了,懒得再写 ...
- Android Phonebook编写联系人UI加载及联系人保存流程(一)
2014-01-06 17:05:11 将百度空间里的东西移过来. 本文适合ROM定制做Phonebook的童鞋看,其他人飘过即可- Phonebook添加/编辑联系人UI加载及保存联系人流程,是一系 ...
- 【STL】-迭代器的用法
初始化: list<char>::iterator pos; 算法: 1. 遍历 for(pos = col1.begin(); pos != col1.end(); ++pos){... ...
- QuartZ的线程锁
; ...
- Mvc学习--1
1.缓存机制[OutputCache(Duration=10)] 后面的 duration 表示缓存时间 直接放在action上面 是一个特性2.文件上传 @using (Html.BeginForm ...
- acvitity的日常 启动模式(上)
1. 基本介绍 大家平时只要懂一点Android知识的话,都一定会知道,一个应用的组成,往往包含了许多的activity组件,每个activity都应该围绕用户的特定动作进行跳转设计.比如说,一个电话 ...
- 纯JS文本在线HTML编辑器KindEditor
KindEditor(http://www.kindsoft.net)是一款比较专业,主流,好用的在线HTML编辑器. 它除了可以将文本进行编辑.将Word中的内容复制进来外,本身还可以拖动缩放(右下 ...
- switch… case 语句的用法(二)
总结来说:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break.都不匹配找d ...
- [Java]Java简介
Java版本历史 1995年5月23日,Java语言诞生 1996年1月,第一个JDK1.0诞生 1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术 1996年9月,约8.3 ...
- SharePoint 2013 开发——APP安全模型
博客地址:http://blog.csdn.net/FoxDave 除非开启了SharePoint网站的匿名访问,否则对于入站的请求,必须要有一个身份验证的过程(Authentication),这个 ...