iOS学习笔记---C语言第四天

 

 1 //⽣生成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相 加,放到另外⼀一个数组中

 2 #import <Foundation/Foundation.h>

 3 

 4 int main(int argc, const char * argv[])

 5 {

 6     

 7     int num1[10]={0},num2[10]={0},num3[10]={0};

 8     for (int i = 0; i<10; i++) {

 9         num1[i]=arc4random()%21+20;

10         num2[i]=arc4random()%21+20;

11         num3[i]=num1[i]+num2[i];

12         printf("%d + %d = %d\n ",num1[i],num2[i],num3[i]);

13          }

14     printf("\n");

15     return 0;

16 }

 

 

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

 一、一维数组

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

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

类型说明符 数组名[常量表达式] ={值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;

 

 1 //⽣生成⼀一个具有20个元素的数组,每个元素的取值范围是30-70之间,求数组元素的和。

 2 #import <Foundation/Foundation.h>

 3 

 4 int main(int argc, const char * argv[])

 5 {

 6 

 7     //20个元素的数组

 8     int number[20]={0},sum = 0;

 9     //随机数  arc4random()%41+30

10     for (int i = 0; i<20; i++) {

11         number[i]=arc4random()%41+30;

12         printf("%d ",number[i]);

13         sum = sum +number[i];

14     }

15     printf("\n%d",sum);

16     return 0;

17 }

 

//⽣生成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相 加,放到另外⼀一个数组中

#import <Foundation/Foundation.h>



int main(int argc, const char * argv[])

{

    

    int num1[10]={0},num2[10]={0},num3[10]={0};

    for (int i = 0; i<10; i++) {

        num1[i]=arc4random()%21+20;

        num2[i]=arc4random()%21+20;

        num3[i]=num1[i]+num2[i];

        printf("%d + %d = %d\n ",num1[i],num2[i],num3[i]);

         }

    printf("\n");

    return 0;

}

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

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

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

二、数组排序

冒泡排序:

 1 //随机输出0-30的数,并按从小到大排序

 2 #import <Foundation/Foundation.h>

 3 

 4 int main(int argc, const char * argv[])

 5 {

 6     

 7     int num1[10]={0};

 8     for (int i = 0; i<10; i++) {

 9         num1[i]=arc4random()%31;

10         printf("%d ",num1[i]);

11         

12     }printf("\n");

13     for (int i = 0; i<9; i++) {

14         for (int j = 0; j<9-i; j++) {

15             if (num1[j]>num1[j+1]) {

16 //                num1[j]=num1[j]^num1[j+1];

17 //                num1[j+1]=num1[j]^num1[j+1];

18 //                num1[j]=num1[j+1]^num1[j];

19                 int temp = num1[j];

20                 num1[j] = num1[j+1];

21                 num1[j+1] = temp;

22             }

23         }

24     }

25     for (int i = 0; i<9; i++) {

26         printf("%d ",num1[i]);

27     }

28     return 0;

29 }

 三、字符数组

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

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

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

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

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

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

 1 #import <Foundation/Foundation.h>

 2 

 3 int main(int argc, const char * argv[])

 4 {

 5     

 6     char name[20]="zhangsan",name1[20]="lisi";

 7 //    printf("%s length is %lu",name,strlen(name));//字符串长度

 8 //    strcpy(name1, name);//字符串拷贝

 9 //    strcat(name, name1);//字符串拼接输出zhangsanlisi

10 //        printf("%s",name);

11     int result = strcmp(name, name1);

12     printf("%d\n",result);

13     if (result>0) {

14         printf("%s 大于 %s",name,name1);

15     }else if(result==0) {

16         printf("%s 等于 %s",name,name1);

17     }else {

18         printf("%s 小于 %s",name,name1);

19     }

20 

21     return 0;

22 }

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

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

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

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

 

 

你可能感兴趣的:(学习笔记)