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