C4_一维数组

来源:互联网 发布:heroku 域名 编辑:程序博客网 时间:2024/06/09 20:15

//

//  main.m

//  C4_一维数组

//

//  Created by dllo on 15/7/3.

//  Copyright (c) 2015 Clare. All rights reserved.

//


#import <Foundation/Foundation.h>


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

//    

//    // 最小公倍数

//    int m = 0 , n = 0 ;

//    scanf("%d%d", &m, &n);

//    

//    int num = m > n ? m : n ;

//    // 用来保存找到的最小公倍数

//    int minNum = 0;

//    

//    for (int i = num; i >= 1; i++) {

//        if ( 0 == i  % m  && 0 == i % n ) {

//            minNum = i;

//            break;

//        }

//    }

//    printf("%d\n", minNum);

//    

//    // 最大公约数

//    int m = 0, n = 0;

//    scanf("%d%d", &m, &n);

//    

//    int min = m < n ? m : n;

//    // 用来保存最大公约数

//    int num = 0;

//    

//    for (int i = min ; i >= 1 ; i--) {

//        if (0 == m % i && 0 == n % i ) {

//            num = i ;

//            break;

//        }

//    }

//    printf("%d\n", num);

//    

//    

//    // 辗转相除法

//    int m = 0, n = 0;

//    scanf("%d%d", &m, &n);

//    

//    while (m % n != 0) {

//        int temp = m % n;

//        // n 的数给m

//        m = n;

//        n = temp;

//        

//    }

//    printf("%d\n", n);

//    

//    

//    // 定义一个最简单的一维数组

//    int arr[5] = { 1, 2, 3, 4, 5};

//    // 如果元素个数大于数组所给的地址数则会出现数组溢出

//    printf("%d\n", arr[5]); // 如果"[]"里的值不等于n - 1,则出现数组越界,超过了当前的范围

//    // c语言里,系统面对数组越界会产生一个警告,当前要访问的数组元素超过了下标的最大值,OC里数组越界会产生崩溃现象

//    

//    

//    // 遍历数组

//    int arr[5] = {2, 1}; // 后面的数未定义默认为0

//    for (int i = 0; i < 5; i++) {

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

//    }

//    

//    // 1、定义⼀一个具有20个元素的整型数组,每个元素的取值范围是30-70之间,求数组元素的和。

//    

//    int arr[20] = { 0 };

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

//        arr[i] = arc4random() % (70 - 30 + 1 ) + 30;

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

//    }

//    

    

//    // 定义一个用来保存和值的变量

//    // 找最大值最小值

//    int arr[20] = { 0 };

//    int sum = 0;

//    // 定义一个最大值,一个最小值

//    int max = 0, min = 70;

//    // 定义一个用来保存最大值和最小值再数组里所对应的下标

//    int maxIndex = 0,minIndex = 0;

//    

//    

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

//        arr[i] = arc4random() % (70 - 30 + 1 ) + 30;

//        sum += arr[i];

//       /* if ( max < arr[i]){

//            max = arr[i];

//            maxIndex = i;

//        }

//        if (min > arr[i]) {

//            min = arr[i];

//            minIndex = i;

//        }

//        */

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

//    }

//    

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

//        if (max < arr[i]) {

//            max = arr[i];

//            maxIndex = i;

//        }

//        if (min > arr[i]) {

//            min = arr[i];

//            minIndex = i;

//        }

//    }

//    printf("sum=%d\n", sum);

//    printf("min=%d %d\n", min, minIndex);

//    printf("max=%d %d\n", max, maxIndex);

    

    

//    // 2、复制一个数组,即两个数组容量一样,把其中一个数组中的元素复制到另外一个数组中。

//    // 复制两个数组

//    // 1.定义两个数组长度相同

//    int arr[20] = {0}, b[20] = {0};

//    // 给其中的一个数组进行随机数赋值,范围30 - 70

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

//        arr[i] = arc4random() % (70 - 30 + 1) + 30;

//        // b数组进行赋值操作

//        b[i] = arr[i];

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

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

//    }

    

//    // 用数组来保存和值

//    // 1000种情况对应的循环写出来

//    

//    int arr[28] = {0};

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

//        for (int j = 0; j < 10; j++) {

//            for ( int k = 0; k < 10 ; k++) {

//                arr[i + j + k]++; // 求和值出现的次数

//                // printf("%d%d%d ", i , j , k);

//            }

//            // printf("\n");

//        }

//        // printf("\n");

//    }

//    for (int a = 0; a < 28 ; a++) {

//        printf("%d\n",arr[a]);// 把各个和值出现的次数打印出来

//    }

//

//

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

//    int arr[10] = {0}, b[10] = {0}, c[10] = {0};

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

//        arr[i] = arc4random() % ( 40 - 20 + 1) + 20;

//        printf("%d ",arr[i]);

//    }

//    printf("\n");

//    for (int j = 0; j < 10; j++) {

//        b[j] =arc4random() % (40 - 20 + 1) +20;

//        printf("%d ",b[j]);

//    }

//    printf("\n");

//    for (int k = 0; k < 10 ; k++) {

//        c[k] = arr[k] +b[k];

//        printf("%d ", c[k]);

//    }

//    printf("\n");

    

//

//    // 冒泡排序

//    int arr[6] = {2, 1, 5, 6, 3, 4};

//    

//    // 外部循环-1 :循环执行到还有两个数没有排序的时候,只需把未排序的两个数交换即可,执行次数是数组个数 - 1

//    for (int i = 0; i < 6 - 1; i++) {

//        // 内部循环 -1:为了防止数组越界,在内部循环处-1

//        for (int j = 0; j < 6 - 1 - i; j++) {

//            if (arr[j] > arr[j + 1]) {

//                int temp =0;

//                temp = arr[j];

//                arr[j] = arr[j + 1];

//                arr[j + 1] = temp;

//                

//            }

//        }

//    }

//    for (int i = 0 ; i < 6 ; i++) {

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

//    }

    

    

//    // 重写一次冒泡排序

//    int arr[6] = {2, 1, 5, 6, 3, 4};

//    for (int i = 0; i < 6 - 1; i++) {

//        for (int j = 0; j < 6 - 1 - i; j++) {

//            if (arr[j] > arr[j + 1]) {

//                int temp = 0;

//                temp = arr[j];

//                arr[j] = arr[j + 1];

//                arr[j + 1] = temp;

//    

//            }

//        }

//    }

//    for (int i = 0; i < 6; i++) {

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

//    }

    

//    

//    // 1、随机产⽣生10[20,40],并对10个数从小到大排序。

//    // 1.定义长度是10 的数组

//    int arr[10] = {0};

//    

//    // 2.产生随机数,对数组进行赋值操作

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

//        arr[i] = arc4random() % ( 40 - 20 + 1) + 20;

//        printf("%d ",arr[i]);

//    }

//    printf("\n");

//    // 3.对已经赋值完成的数组进行排序操作

//    

//    // 对一个赋值完成的数组进行操作,不会出现问题

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

//        for (int j = 0 ; j < 10 - 1 - i; j++) {

//            if (arr[j] > arr[j + 1]) {

//                int temp = 0;

//                temp = arr[j];

//                arr[j] = arr[j +1];

//                arr[j + 1] = temp;

//            }

//        }

//    }

//    // 4.打印排序结果

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

//        printf("%d ", arr[i] );

//    }

//    printf("\n");

//    

//    

    

    

//    // 字符数组和字符串

//    

//    int arr[6] = { 1, 2, 3 , 4, 5, 6};

//    //字符数组

//    char str[6] = {'i', 'p', 'h', 'o', 'n', 'e'};

//    // 下标是5的元素进行赋值

//    str[5] = 'w';

//    for (int i = 0; i < 6 ; i++) {

//        printf("%c\n", str[i]);

//        

//    }

//    

//

//    // 字符串

//    char str[] = "iPhone";

//    // 字符数组

//    char str1[] = {'i', 'p', 'h', 'o', 'n', 'e'};

//    // int arr[5] = {1, 3, 2, 6, 4};

//    printf("%ld\n", sizeof(str));

//    // 区别在于:字符串比字符数组在结尾的地方有一个'\0', \0是字符串的结束标志,'\0'的字符数组才可以成为字符串

//    

//    

//    // 打印字符串

//    // &s打印是通过寻找字符串的结束标志'\0',碰到'\0'就好结束打印

//    printf("%s\n",str);

//    

//    char str2[10] = " ";

    


//    // 关于字符串的一些功能函数

//    char str[10] = "iPhone";

    

//    // 字符串的长度

//    printf("%ld\n", strlen(str));

//    // strlen是肉眼能看见的字符个数相同,'\0'结束,不包括'\0'

//    printf("%ld\n",sizeof(str));

//    // sizeof是字符串所占的空间的大小,包括'\0'

//    

    

//    // 字符串的拷贝

//    char newStr[10] = "";

//    strcpy(newStr, str);

//    // const的地方不会发生变化,即被const所修饰的地方,它的内容不变

//    printf("%s\n",newStr);

    

//    // 字符串的拼接

//    char str1[20] = "I have";

//    char str2[20] = " iPhone";

//    

//    strcat(str1, str2);

//    printf("%s\n", str1);

//    // 被拼接的字符串长度要足够长

    

    

//    // 字符串的比较

//    

//    char str1[] = "abcd";

//    char str2[] = "acc";

//    

//    printf("%d\n",strcmp(str1, str2));

//

    

    

    

    

    // 查找字符串中的空格数:例如:“I love iOS, i want an iPhone5s” 6个空格

//    char str[] = "I love iOS, I want an iPhone5s";

//    int count = 0;

//    // count用来记录空格数

//    for (int i = 0; i < strlen(str); i++) {

//    // for (int i = 0; str[i] != '\0'; i++) {

//        if (str[i] == ' ') {

//            count++;

//        }

//    }

//    printf("%d\n", count);

//    

    

    

//    // 字符串反转

//    // 将字符串倒转:例如:“afjnpue”转变成字符串“eupnjfa”(:是改变字符串本⾝身,不是反向输出)

//    char str[] = "afjnpue";

//    // 反向输出的方法

//    for (int i = strlen(str) - 1; i >= 0; i--) {

//        printf("%c", str[i]);

//        

//    }

//    printf("\n");

//

//    

//    // 倒转

//    int len = strlen(str);

//    for (int i = 0; i < len / 2; i++) {

//        char c = str[i];

//        str[i] = str[len - 1 - i];

//        str[len - 1 - i] = c;

//        //printf("%c", str[i]);

//    }

//    printf("%s\n", str);

//    

//    

    

    

    

    

    

   return 0;

}


0 0
原创粉丝点击