//⽣生成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]Ajax

    一.什么是Ajax 不刷新的情况下读取数据或提交数据 (最早出现ajax:谷歌地图,拖动一下出现一片新的视野) 应用:用户注册.在线聊天.微博 特性:只能从服务器上去读取数据(所以我们需要配置自己的服 ...

  2. bzoj 2244: [SDOI2011]拦截导弹

    #include<cstdio> #include<iostream> #include<algorithm> #define M 100009 using nam ...

  3. “Unable to execute dex: Multiple dex files”如何解决?

    遇到报错: [2014-02-13 17:27:03 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/kkdia ...

  4. TopCoder SRM 583 TurnOnLamps

    读错题了有没有呀,原来 lamps 是在边上的呀,当成是在点上的了,无语. 直接一个dfs 就可以 从叶子节点开始,如果有必要转换 lamp 的状态则加一个仅包含 这个 lamp 的段 然后向上扩展, ...

  5. ICTCLA中科院分词工具用法(java)

    摘要:为解决中文搜索的问题,最开始使用PHP版开源的SCWS,但是处理人名和地名时,会出现截断人名地名出现错误.开始使用NLPIR分词,在分词准确性上效果要比SCWS好.本文介绍如何在windows系 ...

  6. STM32之RTC配置与初始化-rtc.h rtc.c

    <rtc.h> #include "stm32f10x.h" #ifndef _RTC_H #define _RTC_H typedef struct { vu8 ho ...

  7. JAVA 打印九九乘法表

    /** *  * @author liangxiaoyu * @version 1.0 *2015-09-18 */public class JJ { public static void main( ...

  8. c#图像处理入门(-bitmap类和图像像素值获取方法) 转

    一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1. GetP ...

  9. MongoDB 语法(转)

    Mongod.exe 是用来连接到mongo数据库服务器的,即服务器端. Mongo.exe 是用来启动MongoDB shell的,即客户端. 其他文件: mongodump 逻辑备份工具. mon ...

  10. JVM值内存垃圾回收监控之jstat

    如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为top主要监控的是总体的系统资源,很难定位到java应用程序. Jstat是JDK自带的一个轻量级小工具.全称“Java ...