C4-一维数组

//

//  main.m

//  C4_一维数组

//

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

//  Copyright (c) 2015年 zhozhicheng. 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 (i % m == 0 && i % n ==0) {

//            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 (m % i == 0 && n % i == 0 ) {

//            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

//        n = temp;

//

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

//

//    // 定义一个一维数组

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

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

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

// 数组溢出

// 遍历数组

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

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

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

//    }

//

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

//    int sum = 0;

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

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

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

//        sum = arr[i] + sum;

//    }

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

// 练习1

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

//    // 范围 30- 70

//

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

//    int sum = 0;

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

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

//        sum = sum + arr[i];

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

//    }

//

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

//    int arr[20]={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;

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

//            max = arr[i];

//            maxIndex = i;

//

//        }

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

//            min = arr[i];

//            minIndex = i;

//        }

//

//    }printf("%d\n%d\n",max,min);

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

//

//    // 练习2

//    // 复制两个数组

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

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

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

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

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

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

//        b[i] = arr[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]++;

//

//            }

//        }

//    }

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

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

//    }

//

//    // 练习3

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

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

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

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

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

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

//    }

//    // 冒泡排序

//    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]);

//

//    }

//    // 随机产生十个[20,40]随机数,并对十个数从小到大排序

//    // 定义长度10的数组

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

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

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

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

//    }

//    // 对已经复制完成的数组进行排序操作

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

//    for (int i = 0; i < 10; 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;

//            }

//        }

//        // 打印排序结果

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

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

//    }

//

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

////    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(arr));

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

//    // 打印字符串

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

//

//    // %s打印是通过寻找字符串结束标志‘\0‘,碰到‘\0‘就会结束打印

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

//    char str[] = "iphone";

//

//    // 字符串长度

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

//    // strlen 是肉眼能看见的字符个数

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

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

//    char str[] = "iphone";

//    // 字符串的拷贝

//    char newStr[10]= "";

//    strcpy(newStr, str );

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

// 字符串的拼接

//

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

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

//    strcat(str1, str2);

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

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

//  字符串的比较

//    char str1[] = "aba";

//    char str2[] = "adc";

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

//    //用来记录空格数

//    int number = 0;

//    char str[] = "lads asdj hdh asdv asdls";

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

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

//            number = number + 1;

//                    }

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

//    char str[]="khfyomj";

//    // 反向输出

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

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

//

//    }

//    printf("\n");

//    // 倒转

//    char str[] = {"world"};

//    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("%s\n",str);

return 0;

}

时间: 2025-01-17 04:33:03

C4-一维数组的相关文章

JAVA一维数组

import java.applet.Applet; import java.awt.*; //用*表示包含awt这个源包下的所有方法成员,awt为图形界面设计包 public class Applet_Example extends Applet{ int a[]; //定义一个一维数组 public void init(){ a=new int[5]; //定义一个一维数组,该数组包含5个元素 a[0]=100; //分别对数组元素赋值 a[1]=101; a[2]=102; a[3]=10

一维数组的三种写法

/** *一维 数组的几种写法 * 记住:①数组的左边不能有数字 *   ②数组的右边既然初始化了数组,那么就要赋值 */ //一维数组的标准格式 String[] arr1 = new String[]{"bo","li","jian"}; //上面的简写格式 String[] arr2 = {"bo","li","jian"}; //初始化容量 String[] arr3 = new

输出 一维数组中最大的数+数组遍历

1 //将数组中最大的数输出 2 //数组遍历 3 int[] arr = new int[]{2,4,1,6,10,11}; 4 System.out.println("输出一维数组 :"); 5 for(int i=0; i<arr.length;i++) 6 { 7 System.out.print(arr[i]+" "); 8 } 9 10 System.out.println(); 11 12 int max = arr[0]; 13 for(int

算法练习:一维数组旋转

题目描述:求一个一维数组向右旋转K个位置后的结果.比如,一维数组{1, 2, 3, 4, 5},当k = 2时,求得的结果为{4, 5, 1, 2, 3}.要求常数级空间复杂度,允许修改原有数组. 一.使用额外的空间(在不要求常数级空间复杂度的情况下) 这样很简单,使用一个额外的空间,保存原有数组的元素,然后可以错位复制原有数组 元素,即可达到题目的要求.比如数组{1, 2, 3, 4, 5},当k = 2时,先将4,5复制到结果数组,然后将1,2,3复制到结果数组的后面部分. //使用额外空间

07-JAVA一维数组及多维数组(2)

1. Java数组的定义: 1) 和其它编程语言的数组定义基本相同,具有2要素,分别是类型一致(数组中的数据都是一种类型的)和定长(初始化时就已经确定长度,这也意味着数组的内存空间也确定了,即大小不变了): 2) 在Java中数组类型也是一种引用类型,底层是用面向对象的类实现的: 3) 定义数组:支持两种格式 i. Java格式:type[] arrayName; ii. 传统的C语言格式:type arrayName[];  // 为了满足C程序员的编程习惯 !!更加推荐Java风格的,因为其

07-JAVA一维数组

一维数组的声明 使用一个数据时,必须要对其进行声明,这个道理对于数组来说也一样,数组在使用之前也必须先声明.先看下面的代码,是如何声明一个变量的. int a; 仔细分析一下:int 是指变量的数据类型,a 是指变量名,由变量的声明可以联系到数组的声明. int a[]; 仔细分析一下:int 是指数组中所有数据的数据类型,也可以说是这个数组的数据类型,a[]表示数组名. 基本类型数组的声明有几种形式: int a[]; int[] a; 这两种形式没有区别,使用效果完全一样,读者可根据自己的编

php多维数组化一维数组

一.使用foreach <?php function arr_foreach ($arr) { static $tmp=array(); if (!is_array ($arr)) { return false; } foreach ($arr as $val ) { if (is_array ($val)) { arr_foreach ($val); } else { $tmp[]=$val; } } return $tmp; } $a = array(1,2=>array(3,4=>

C# 一维数组(1)

一.复习: 1.break与continue.这两个关键字一般放在循环的花括号里面使用.break——结束整个循环.continue——结束本次循环,进入下次循环. break的案例:int i = 1;for(;;){if(i>100){break;}Console.Write(i+"\t");i++;} continue的案例:for (int i = 1; i <= 100; i++){if(i%2 == 0){continue;}Console.Write(i +

C#一维数组(2)

数组是一种常用的数据类型,且属于引用类型.它是由一组相同数据类型的元素构成的.在C#语言的类型系统中,数组由抽象类System.Array派生而来的.在内存中,数组占用一块连续的内存,元素按顺序连续存放在一起,数组中每一个单独的元素并没有自己的名字,但是可以通过其位置(索引)来进行访问或修改. 在C#中,数组元素的索引是从0开始的,即对于有N个元素的数组,其索引范围是从0~N-1. 在这里重点讨论一下一位数组的使用方法. 1.一维数组的声明 数组声明时,主要声明数组的名称和所包含的元素类型,一般

poj 3624 (01背包一维数组)

①这种问题要看清楚变量范围 数组范围很容易开错!!! ②这个下限是w[i]!!!很重要 或者加一句判断  if(j-w[i]>=0)  1 for(int i=1;i<=t;i++) 2 { 3 for(int j=n;j>=w[i];j--)//下限!!! 4 dp[j]=max( dp[j] , dp[j-w[i]]+v[i] ); 5 } AC代码,一维数组可以压缩空间. 1 #include <cstdio> 2 #include <cstring> 3