iOS入门(七)函数

库函数,用户自定义函数
有返回值函数,无返回值函数
有参数函数, 无参数函数。
函数定义 : 类型标示符  函数名 ( 参数列表) { 代码 } 
                 ( 返回值类型) 
有返回值无参数函数定义
       int taxi () {

        return 8;

    }                

  在主函数中 : 

  int   a = taxi () ;                         

or   printf( “ %d\n ” , taxi () ) ;


void HelloWorld() {

 printf ( " HelloWorld ! \n " ) ;  

}     (无返回值无参数函数)     在主函数中  :   helloworld();

有返回值函数定义 :  

 

void printNum(int x )

{

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

}


 

#import 

int taxi ()

{

    return ;

}

void helloworld ( )

{

    printf( " Hello, World !\n " ) ;

}

void printNum(int x )

{

    for int i =  i < x ;  i ++ ) {

        printf( " %d \n" , i + ) ;

    }

}

int maxValue ( int x , int y )

{

    int max = ;

    max = x > y ? x : y ;

    return  max ;

}


int minValue ( int x , int y )

{

    int min = ;

    min  = x < y ? x : y ;

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

    return ;

}

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

{

    int a =   taxi( );

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

    helloworld();

    printf( "%d \n" taxi());

    printNum (5) ;

    maxValue(3, 5);

    minValue(7, 5);

}


运行结果   : 


 

 Hello, World !

 

 

 

 

 

 

 

 Program ended with exit code: 0


1、抄写程序结构:

#include

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

{

int a[10] = {0},i= 0;

for(i = 0; i < 10; i++)

{

a[i] = i+10;

printf("a[%d] = %d\n", i, a[i]);

}


return 0;

}


2、将第一题中的数组反向输出。


3、对第一题中的数组进行求和操作,并打印计算结果。计算数组连减之差,并打印计算结果。


4、随机产生20个10~50的正整数存放到数组中,并求数组中的多有元素最大值、最小值、平均值及各元素之和。


6、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组。


7、给定某年某月某日,将其转换成这一年的第几天并输出。


8、编写整型值数组排序程序(冒泡排序--升序)

int a[] = {3,-9,32,77,63,-24,14,0,21,45};



9、找出下列整型数组中最大和最小值及其所在位置i。

int a[] = {5,-9,32,77,64,-24,14,0,21,45};


10、char result[50] = {0};

char str1[] = "Lanou ";

char str2[] = "14_class ";

char str3[] = " is niu best!";

把str1, str2, str3合并到result数组中。

“Lanou 14_class is niu best!”

 


11、找出下面程序的错误:

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

{

char string[10], str1[10];

int i;

for(i = 0; i < 10; i++)

{

str1[i] = 'a';

}

strcpy(string, str1);

}



12、下面这个程序执行后会有什么错误或者效果:

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

{

unsigned char str[10], i;

for(i = 0; i < 256; i++)

str[i] = i;

}


5、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时,直接输入其编号(编号由计算机随机产生),

若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。


13、思考题:编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。

比如:"ni hap world",最长单词是world


14、思考题: 约瑟夫环的数组实现


   约瑟夫(Josephus)问题是由古罗马的史学家约瑟夫提出的,他参加并记录了公元66-70年犹太人反抗罗马的起义。约瑟夫作为一个将军,设法守住了裘达伯特城达47天之久,在城市沦陷之后,他和40名将士在附近的一个洞穴中避难。在哪里,将士们群情激奋并表示:要投降毋宁死。于是,约瑟夫建议每个人轮流杀死他旁边的人,而这个顺序是由抽签决定的。约瑟夫有预谋地抓到了最后一签并且做为洞穴中两个幸存者之一生存下来。

   约瑟夫环问题的具体描述是:设有编号为1,2,......,n的n(n>0)个人围成一个圈,从第一个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,......,如此下去,知道只剩下一人为止。当任意给定 n和 m后,设计算法求 n个人出圈的次序。



函数作业:

int taxi ()

{

    return ;

}

void helloworld ( )

{

    printf( " Hello, World !\n " ) ;

}

void printNum(int x )

{

    for int i =  i < x ;  i ++ ) {

        printf( " %d \n" , i + ) ;

    }

}

int maxValue ( int x , int y )

{

    int max = ;

    max = x > y ? x : y ;

    return  max ;

}


int minValue ( int x , int y )

{

    int min = ;

    min  = x < y ? x : y ;

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

    return ;

}


//    int a =   taxi( );

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

//    helloworld();

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

//    printNum (5) ;

//    maxValue(3, 5);

//    minValue(7, 5);



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

//    int a[10] = {0} ,  i = 0 ;

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

//        a[i] = i + 10 ;

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

//    }

    

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

//    int a[10] = {0} ,  i = 0 ;

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

//        a[i] = i + 10 ;

//    }

//    for ( int j = 9 ;  j >= 0 ;  j -- ) {

//        printf( " a[%d] = %d\n" , j  , a[j] ) ;

//    }

    

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

//    int a[10] = {0} ,  i = 0 ;

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

//        a[i] = i + 10 ;

//    }

//    int sum = 0 ;

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

//        sum += a[j] ;

//    }

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

//    int b = 0 ;

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

//        b -= a[j] ;

//    }

//    b = b + 2 * a[0] ;

//    printf( " 连减之和为    :     %d   \n " , b ) ;

    

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

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

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

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

//        printf( "%d\t  " , array[i] ) ;

//    }

//    printf( " \n" ) ;

//    int max = 0 , min = 50 , avr = 0 , sum = 0 ;

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

//        max = max > array[i] ? max : array[i] ;

//        min = min < array[i] ? min : array[i] ;

//        sum += array[i] ;

//    }

//    avr = sum / 20 ;

//    printf( "该数组的\n最大值为       %d\n最小值为       %d\n平均值为       %d\n各个元素之和为 %d\n" , max , min , avr , sum ) ;

  

//    printf( " 题目五     \n " ) ;

//    char person[4] = {'a','b','c','d'};

//    char ch;

//    int vote[4] = {0},n , m  = 0  ;

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

//    getchar();

//    for(int i = 0;i < n;i++)

//    {

//        printf("请输入要选举的人的编号('a,b,c,d'中一个字母):");

//        scanf("%c",&ch);

//        getchar();

//        switch(ch)

//        {

//            case 'a':vote[0]++;break;

//            case 'b':vote[1]++;break;

//            case 'c':vote[2]++;break;

//            case 'd':vote[3]++;break;

//            default:m ++ ;break;

//        }

//    }

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

//    {

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

//        {

//            if(vote[j] < vote[j + 1])

//            {

//                int temp = vote[j];

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

//                vote[j + 1] = temp;

//                char swap = person[j];

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

//                person[j + 1] = swap;

//            }

//        }

//    }

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

//        printf( "%c : %d       " , person[i] , vote[i] );

//    }

//    printf( " \n\n  %d   人弃权!!!\n\n" , m ) ;

    

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

//    int a[5] = {0}  ,b[5]  = {0} ;

//    printf( " 数组一的元素为   :     \n"  );

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

//        a[i] = arc4random() % 30 + 10 ;

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

//    }

//    printf( " 数组二的元素为   :     \n"  );

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

//        b[i] = arc4random() % 30 + 10  ;

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

//    }

//    printf( "排序后 数组一的元素顺序为   :     \n"  );

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

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

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

//                int temp = a[j] ;

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

//                a[j+1] = temp ;

//            }

//        }

//    }

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

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

//    }

//    printf( "排序后数组二的元素顺序为   :     \n"  );

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

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

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

//                int temp = b[j] ;

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

//                b[j+1] = temp ;

//            }

//        }

//    }

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

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

//    }

//    printf( " 数组三的元素为     :      \n"  ) ;

//    int c[10] ;

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

//        c[i] = a[i] ;

//    }

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

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

//    }

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

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

//    }

//    printf( " 排序后数组三的元素顺序为     :      \n"  ) ;

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

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

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

//                int temp = c[j] ;

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

//                c[j+1] = temp ;

//            }

//        }

//    }

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

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

//    }

    

    //    int a[5] = {0},b[5] = {0},c[10] = {0},i,j;

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

    //    {

    //        a[i] = arc4random() % (99 - 10 + 1) + 10;

    //        b[i] = arc4random() % (99 - 10 + 1) + 10;

    //    }

    //    for(i = 0;i < 5 - 1;i++)

    //    {

    //        for(int k = 0;k < 5 - 1 - i;k++)

    //        {

    //            if(a[k] > a[k + 1]){

    //                int temp = a[k];

    //                a[k] = a[k + 1];

    //                a[k + 1] = temp;

    //            }

    //        }

    //    }

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

    //    {

    //        printf("%-3d\n",a[i]);

    //    }

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

    //    for(j = 0;j < 5 - 1;j++)

    //    {

    //        for(int k = 0;k < 5 - 1 - j;k++)

    //        {

    //            if(b[k] > b[k + 1]){

    //                int temp = b[k];

    //                b[k] = b[k + 1];

    //                b[k + 1] = temp;

    //            }

    //        }

    //    }

    //    for(j = 0;j < 5;j++)

    //    {

    //        printf("%-3d\n",b[j]);

    //    }

    //

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

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

    //    {

    //        int count1 = 0;

    //        for(j = 0;j < 5;j++)

    //        {

    //            if(a[i] > b[j])

    //            {

    //                count1++;

    //            }

    //        }

    //        c[i + count1] = a[i];

    //    }

    //    j = 0;

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

    //    {

    //        if(c[i] == 0)

    //        {

    //            c[i] = b[j];

    //            j++;

    //        }

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

    //    }

    //    printf( " \n" ) ;

    //

    

    

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

//    printf( " 请输入一个日期 ,年月日之间用逗号隔开      :    \n ");

//    int year = 0 , month = 0 , day = 0 , sum = 0 ;

//    scanf( "%d,%d,%d" , &year ,&month , &day );

//    sum += day ;

//    switch (month )

//    {

//        case 12 :  sum += 30;

//        case 11 :  sum += 31;

//        case 10 :  sum += 30;

//        case 9 :  sum += 31;

//        case 8 :  sum += 31;

//        case 7 :  sum += 30;

//        case 6 :  sum += 31;

//        case 5 :  sum += 30;

//        case 4 :  sum += 31;

//        case 3 :

//            if ((year % 400 == 0)  ||  (year %4 == 0 && year % 100 != 0) ) {

//                sum += 29;

//            }

//            else{

//                sum += 28;

//            }

//        case 2 :  sum += 31;

//        case 1 :  sum += 0; break ;

//    }

//    printf( " 今天是这一年的第 %d  天  。 \n " , sum ) ;

    

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

//    int a[] = { 3,-9,32,77,63,-24,14,0,21,45};

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

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

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

//                int temp = a[j] ;

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

//                a[j+1] = temp ;

//            }

//        }

//    }

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

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

//    }

  

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

//

//    int a[] = {5,-9,32,77,64,-24,14,0,21,45};

//    int max = 0 , min = 70 , b = 0 , c = 0 ;

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

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

//            max = a[i] ;

//            b = i ;

//        }

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

//            min = a[i] ;

//            c = i ;

//        }

//    }

//    printf( " 最大值为   %d  序号为    %d\n最小值为   : %d  序号为    %d\n", max ,b+1 , min , c+1);

    

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

//    char result[50] = {0};

//    char str1[] = "Lanou ";

//    char str2[] = "14_class ";

//    char str3[] = " is niu best!";

//    strcpy(result, str1);

//    strcat(result, str2);

//    strcat(result, str3);

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

    

    

//    printf( " 题目十三      \n\n" );

//    char a[20] = "ni hap world" ;

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

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

//    while (1) {

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

//            len ++ ;

//        }

//        else

//        {

//            if  ( max < len ) {

//                max = len ;

//                b = i ;

//            }

//            len = 0 ;

//        if ( a[i] == '\0' ) {

//            break ;

//        }

//    }

//        i ++;

//    }

//    printf( " 最长单词为   :    \n " ) ;

//    for ( int j = max ;  j > 0 ;  j -- ) {

//        printf( "%c" , a[b-j]);

//    }

//    printf( "\n");

    

    

//   printf( " 题目十四     \n\n" );

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

//    int a[41] = {0} ;

//    m = arc4random() +1;

//    printf( " n(41) 个人报 %d 出圈的次序为   :  \n\n"  , m ) ;

//    while (1) {

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

//            count ++;

//        }

//        if ( count == m ) {

//            count = 0 ;

//            p ++ ;

//            a[i] = 1;

//            printf( " 第 - 个出局的人是   第-号~\n" , p , i + 1 );

//        }

//        if ( p == 40 ) {

//            break ;

//        }

//        i ++ ;

//        if (i == 41) {

//            i = 0 ;

//        }

//    }

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

//        if (a[j] == 0 ) {

//            printf( " 最后剩下的人为  :   %d \n" , j + 1 ) ;

//        }

//    }



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值