您的位置:首页 > 移动开发 > IOS开发

iOS第4天数组排序

2015-07-18 08:54 381 查看
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
//创建5个整型变量
//对器 ctrl + i
//    int a = 1;
//    int b = 2;
//    int c = 3;
//    int d = 4;
//    int f = 5;
//
//    int n1 = 0;
//    int n2 = 0;
//    int n3 = 0;
//    int n4 = 0;
//    int n5 = 0;
//    int n6 = 0;
//    int n7 = 0;
//    int n8 = 0;
//    int n9 = 0;
//    int n10 = 0;
//数组
/*
本质: 快速定义多个相同数据类型的变量
定义: 数据类型 数组名[数组元素个数] = {值1, 值2, ..., 值n};
移动:cmd alt + []
数组的确定:定义出来的是相同数据类型的变量
//注意1:最后一个数组元素的下标是:数组元素的个数 -1
//注意2:c语言,不会检测数组下标越界
*/
//    short array1[10] = {1,2,3,5};
//    char array2[10] = {'a','b'};
//    int c[5] = {0};
//    int  d[] = {9, 5, 2, 7};//在没有给定数组元素个数的时候,可以按照该模式,此时一定要写轻搓所有的初值
//    //创建 float ,short,char 类型的数组,元素各十个
//    int array[10] = {1,2,3,4,5,6,7,8,9,10};
//    for (int i = 0 ; i < 10 ;i++)
//    {
//        printf("array[%d] = %d",  i, array[i]);
//    }
//定义20个元素
/*
int a[10] = {0};
int b[10] = {0};
int c[10] = {0};
for (int i = 0 ; i < 10; i++) {
a[i] = arc4random() % (40 - 20 + 1) + 20;

printf("a%d \n",a[i]);

}
for (int i = 0; i < 10; i++) {
b[i] = a[i];
printf("b = %d \n", b[i]);
}
for (int i = 0; i < 10 ; i++) {
c[i] = a[i] + b[i];
}
*/
//    int a[10] = {0};
//    int max = 0;
//    for (int i = 0; i < 10  ; i++) {
//        a[i] = arc4random() % (40 - 20 +1) + 20;
//
//
//
//        printf("%d ",a[i]);
//        max = max > a[i] ? max : a[i];
//    }
//    printf("最大值是%d",max);

//冒泡排序
/*
int a[5] = {38,24,18,29,10};
//5个元素第1趟比较了4次,第2趟比较了3次,第3趟比较了2次,第4次比较1次

int tem = 0;
//这里的i<4不是5防止数组元素越界
//这里是走了一趟,找到了最大值
//外层循环控制比较的趟数
//外层循环 -1可减可不减,-1是为了提高程序的效率
for (int j = 0; j < 5 - 1; j++) {
//内层循环控制比较的次数
//内层循环,-1必须减,目的:防止数组下标越界
//内层循环,-j可减可不减,-j是为了提高效率
for (int i = 0; i < 5 - 1 -j ; i++) {
if (a[i] > a[i+1]) {
//如果前面的大于后面的交换
tem = a[i];
a[i] = a[i+1];
a[i+1] = tem;
}
}
}

for (int i = 0; i < 5; i++) {
printf("%d ",a[i]);
}
*/
/*
//运行的快捷键cmd+R;
//定义十个元素的整型数组,[10, 30]随机数,升序排列,然后输出
int  a[10] = {0};
int temp = 0;
for (int i = 0; i < 10; i++) {
a[i] = arc4random() % (30 - 10 +1) + 10;
}
//    for (int i = 0; i < 10 - 1;  i++) {
//        for (int j = 0; j < 10 - 1 - i;  j++) {
//            if (a[j] > a[j+1]) {
//                temp = a[j];
//                a[j] = a[j+1];
//                a[j+1] = temp;
//            }
//        }
//    }
for (int i = 0; i < 10 - 1; i++) {
for (int j = 0; j < 10 - 1 - i; j++) {
if (a[j] < a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (int i = 0; i < 10 ; i++) {
printf("%d ",a[i]);
}
*/
//字符数组
//定义数组
/*
char charArray[7] = {'n', 's', 'd', 'b', 'b', 'b', 's'};
char str[] = "iPhone";//字符串,末尾存在隐含字符\0
printf("%s \n",str);
//访问单个
printf("%c \n", charArray[0]);
for (int i = 0; i < 7; i++) {
printf("%c ",charArray[i]);
}
*/
//字符串
//字符串是字符数组,但是字符数组不一定是字符串.
//%s 从字符串第一个字符开始输出,直到遇到 \0 结束输出
//srrlen 求的是字符串看到的长度
//1.计算字符串长度的函数
char string1[] = "iPad";
int length = (int)strlen(string1);
printf("%d \n", length);
//2.字符串拷贝函数: strcpy(), 将后一个字符串的内容,拷贝给前一个字符串.
//注意:后一个字符串的长度,不能超过前一个字符串
char string2[] = "iPod";
// char  string3[]  = "iPone";
strcpy(string1, string2);
printf("%s\n",string1);
printf("%s\n",string2);
//3.字符串的拼接函数: strcat(),将后一个字符串拼接到前一个字符串的后面(从前一个字符串的\0位置开始拼接)
strcat(string2, string2);
printf("%s\n",string2);
//4.字符串比较函数: strcmp(),前一个字符串,与后一个字符串,逐个进行,直到寻找到不相等的字符结束;返回的是,前一个字符串与后一个字符串不相等字符串之间的差值(前一个字符串中的字符,减去后一个字符串中的字符
int result = strcmp(string1 , string2);
printf("%d \n", result);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: