iOS入门(五)数组排序

来源:互联网 发布:windows 评估副本 编辑:程序博客网 时间:2024/06/05 15:44
一、 冒泡    数组长度 - 1 
二、 比较    数组长度 - 1 
三、 判断
四、 交换顺序
字符数组    字符串
定义 : char [] = { 'a' , 'y ' , 'h ' , 'o ' , 'p ' }    后面没有空字符
or         char [10] = " iPhone "         后面有空字符
strlen()       strcpy()       strcat() 字符串拼接   strcmp 字符串比较

     eg : 

         char str1[] = "iPhone";

        char str2[] = "Android";

        char str3[] = "winphone";

        int length = (int ) strlen (str3);

        printf(" length = %d \n sizeof = %lu \n "  , length , sizeof(str3)) ;

        strcpy(str1, str2);

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

        char temp[50] = {0};

        strcpy( temp , str3 ) ;

        printf(" %s \n " , temp ) ;

        strcat ( temp , str1 );

        printf ( " %s \n " , temp );

        char str4[] = "iPhone4s";

        char str5[] = "iPhone5c";

        printf ( " %d \n " ,  strcmp(str4, str5) );

答案   : length = 8 

 sizeof = 9 

  Android 

  winphone 

  winphoneAndroid 

  -1 

strlen  字符数    sizeof() 字节数


 

1、随机产生20个[10 , 50]的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和。

2、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。

耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3…。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。请找出它原来的序号。

//        printf( " 题目一  :     \n\n");

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

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

//            array[i] = arc4random()A + 10;

//            printf( " array[-]  =  -  \n" , i , array[i] );

//        }

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

//            if (array[i] > array[i + 1]) {

//                int temp = array [i];

//                array [i ] = array [i + 1] ;

//                array[i + 1 ]= temp ;

//            }

//        }

//        for (int i = 19 ;  i > 0 ;  i -- ) {

//            if (array[i] < array[i - 1]) {

//                int temp = array[i] ;

//                array[i] = array[i-1];

//                array[i-1] = temp;

//            }

//        }

//        int max = array[19];

//        int min = array[0];

//        int sum = 0 ;

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

//            sum += array[i];

//        }

//        int   n = 0 ;

//        n = sum / 20;

//        printf(" 最大值为    :  %d  \n" , max ) ;

//        printf(" 最小值为    :  %d  \n" , min );

//        printf(" 平均值为    :  %d  \n" , n  );

//        printf(" 各个元素之和为    :  %d  \n " , sum );

        

//        printf( " 题目二       :      \n\n\n " ) ;

//        char array[]="hello i love iphoes ";

//        int i=0,len=0,max=0,last=0;

//        while (array[i]!='\0') {

//            i++;

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

//                int temp=i-len;

//                if (max

//                    max=temp;

//                    last=i;

//                }

//                len=i;

//            }

//        }

//        for (int i=1; i<=max; i++) {

//            printf("%c",array[last-max+i]);

//        }

//        printf( " \n " );

   

        char str[]="hello i love iphoes i want an iphone5s ";

        int len=0,max=0, i = 0  , last = 0 ;

        while (1) {

            if (str[i] != '\0' &&  str[i] != ' ' ) {

                len++;

            }

            else  {

                if (max

                    max = len;

                    last = i  ;

                }

                len = 0 ;

                if (str[i] == '\0' ) {

                    break;

                }

            }

            i ++ ;

        }

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

        for (int i=1; i<=max; i++) {

            printf("%c",str[last-max+i]);

        }

            printf( " \n " );


 

//    int person [13] = {0};

//    int i = 0 , p = 0 , count = 0 ;

//    while (1) {

////        数数的时候只能数没有出局的人

//        if (person [i] != 1 ) {

//            count ++;

//        }

////        当数到三时

//        if (count == 3 ) {

//            p ++;

//            person[i] = 1;

//            count = 0 ;

//        }

////        当出局人数为12时,游戏结束

//        if (p==12 ) {

//            break;

//        }

////        当i= 13时,开始下一轮数数

//        i ++;

//        if (i == 13) {

//            i = 0 ;

//        }

//    }

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

//        if (person[i]  != 1 ) {

//            printf("背叛耶稣的人原来的编号为   :    %d\n\n\n" , i +1);

//        }

//    }

 

0 0