//
// main.m
// C4_一维数组
//
// Created by dllo on 15/7/3.
// Copyright (c) 2015年 cml. 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 num = m < n ? m : n;
// // 用来保存最大公约数
// int maxNum = 0;
// for (int i = num; i >= 1; i--) {
// if (0 == m % i && 0 == n % i) {
// maxNum = i;
// break;
// }
// }printf("最大公约数为:%d",maxNum);
// int m = 0, n = 0;
// scanf("%d%d",&m ,&n);
// while(m % n != 0){
// int temp = m % n;
// m = 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, 6, 4, 9};
// for (int i = 0; i < 5 ; i++ ){
// printf("%d\n",arr[i]);
// }
// 练习1
// int arr [20] = {0 };
// int m = 0; // 用来保存和值的变量
// for (int i = 0 ; i < 20; i++){
// arr[i] = arc4random() %(70 -30 +1)+ 30;
// m += arr[i];
// printf("%d\n",arr[i]);
// }printf("%d\n",m);
// int arr[20] = {0};
// int sum = 0;
// int max = 0;
// int min = 70;
// // 保存最大值和最小值所在数组里的下标
// int maxIndex = 0;
// int minIndex = 0;
// for (int i = 0; i < 20 ; i++){
// arr[i] = arc4random() % (70 -30 + 1)+30;
// sum += arr[i];
// if(max > arr[i]){
// maxIndex=i;
// }
// if (min < arr[i]) {
// minIndex = i;
// }
// max = max > arr[i]? max: arr[i];
// min = min < arr[i]? min: arr[i];
// printf("%d\n",arr[i]);
// }printf("%d\n",sum);
// printf("%d\n%d\n",max,min);
// printf("%d\n%d\n",maxIndex,minIndex);
//
// 练习二
//复制两个数组
// 1.定义两个数组,长度相同
// int arr[20]= {0}, b[20] = {0};
// // 给其中一个数组随机数赋值,30-70
// for(int i = 0; i < 20; i++){
// arr[0]=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的次数是:%d\n",i,arr[i]);
// }
// int arr[28] = {0};
// for (int i = 0;i < 28; i++){
// for (int )
// }
//
// int arr[10] = {0},b[10] = {0}, c[10]={0};
// for (int i = 0; i <10 ; i++) {
//
// arr[i] =arc4random()% (21) +20;
// b[i] =arc4random()% (21) + 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 = 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 = arr[j];
// arr[j]= arr[j+1];
// arr[j+1] = temp;
// }
//
// }
// }
// for (int i=0; i<6; i++) {
// printf("%d\n",arr[i]);
// }
//
//
// //随机产生10个[20,40]数,并对十个数从大到小排序,
// // 1.定义长度为10的数组
// int arr[10]={0};
//
//
// // 2.产生随机数,对数组进行赋值操作
// // 対一个赋值已经完成的数组进行操作,不会出现问题
// for (int i = 0;i <10; i++) {
// arr[i]=arc4random()%(40-20+1)+20;
// }
//
// // 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 = arr[j];
// arr[j] = arr[j+ 1];
// arr[j+1] = temp;
// }
// }
// }
//
// // 4.打印排序结果
//
// 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",str[i] );
//
// } printf("\n");
//
//
// // 字符串
// char str[] = "ipho\0ne";
// // 字符数组
// char str1[] = {'i', 'p', 'h', 'o', 'n', 'e'};
// // 区别在于;字符串比字符数组在结尾的地方有一个'\0','\0'是字符串的结束标志,有'\0'的字符数组才可以称为字符串
// printf("%d\n",sizeof(str1));
//
// // 打印字符串
// // %s打印是通过寻找字符串的结束标志'\0',碰到'\0'就会结束打印
// printf("%s\n",str);
//
//
// // 关于字符串的一些功能函数
// char str[] ="iphone";
// // 字符串的长度
// printf("%ld\n",strlen(str));
// // strlen是肉眼能看到的字符数,到'\0'结束,不包括'\0'
//
// printf("%ld\n",sizeof(str));
// // sizeof是自负所占的空间大小,包括'\0'
//
// 字符串的拷贝
// 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[] = "adcd";
// char str2[] = "acc";
// printf("%d\n", strcmp(str1 , str2 ));
//
//
// char str[] ="sakldj lasjkd aslkdjsadkl dj";
// printf("%ld\n",sizeof(str)- strlen(str));
// int count = 0;
// for ( int i = 0; i < strlen(str); i++) {
// if (str[i]==' ') {
//
// count +=1;
// }
// }printf("%d\n",count );
//
// char str[] ="afjnpue";
// for (int i = 0; i < strlen(str); i++) {
// for (int j = 0; j < strlen(str )-1-i; j++) {
// int temp
// }
// }
//反向输出
char str[] = "afjnpue";
// for (int i = strlen(str ) -1;i >= 0;i--){
// printf("%c\n",str [i]);
// }printf("\n");
//
// 倒转
// int len = strlen(str );
//
// for (int i = 0; i< len/2;i++){
// char c = str[i];
// str[i] = str[len-i-1];
// str[len - i -1] = c;
//
// }
// printf("%s\n",str);
//
//
//