您的位置:首页 > 编程语言 > C语言/C++

黑马程序员--C语言基础-几个常用函数

2015-04-09 23:39 253 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

#include <stdio.h>

int main(int argc,
const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}
一,翻译数字
void printNum(int num) {
    switch (num) {
        case 1:printf("一");
break;
        case 2:printf("二");
break;
        case 3:printf("三");
break;
        case 4:printf("四");
break;
        case 5:printf("五");
break;
        case 6:printf("六");
break;
        case 7:printf("七");
break;
        case 8:printf("八");
break;
        case 9:printf("九");
break;
        case 10:printf("十");break;
    }
}

int main(int argc,
const char * argv[]) {
    //
    // 两位数
    // 10   直接翻译
    // 11   十位 == 1 &&
个位 != 0  十 + 汉字直接翻译数字
    // 20   十位 != 1 &&
个位 == 0  十位直接翻译 +

    // 21   十位 != 1 &&
个位 != 0  十位汉字直接翻译 +
十 + 个位直接翻译
    
    // 1,提示用户输入数字 //
不考了 02   2011年02月09日
    int num, shi, ge;
    printf("请输入一个两位数字:");
    scanf("%d", &num);
    // 2,获得个位与十位的数字
    shi = num / 10;
    ge = num % 10;
    // 3,分组判断
    //
    if(num == 10) {
        printf("十\n");
    } else if( shi !=
1 && ge != 0 ) {
        // 十位 != 1 &&
个位 != 0  十位汉字直接翻译 +
十 + 个位直接翻译
        // 如何直接翻译
        printNum(shi);
        printNum(10);
        printNum(ge);
        
    } else if( shi !=
1 ) {
        // 十位 != 1 &&
个位 == 0  十位直接翻译 +

        printNum(shi);
        printNum(10);
    } else {
        // 十位 == 1 &&
个位 != 0  十 + 汉字直接翻译数字
        printNum(10);
        printNum(ge);
    }
    
    printf("\n");
    
    return 0;
}

二,打印一个矩形
void printJuXing() {
    // 打印一行
    /*
     for(int i = 0; i < 30; i++) {
     printf("*");
     }
     printf("\n");
     
     for(int i = 0; i < 30; i++) {
     printf("*");
     }
     printf("\n");
     
     for(int i = 0; i < 30; i++) {
     printf("*");
     }
     printf("\n");
     
     for(int i = 0; i < 30; i++) {
     printf("*");
     }
     printf("\n");
     
     for(int i = 0; i < 30; i++) {
     printf("*");
     }
     printf("\n");
     */
    for (int j =
0; j < 5; j++) {
        for(int i =
0; i < 30; i++) {
            printf("*");
        }
        printf("\n");
    }
}

三,递归函数

// 递归函数最核心的亮点,一是跳出条件,结束递归的条件,二是递归体
// 递推关系(=递归)
// Fibnacci数列
// 0
// 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
// 第n项是第n-1项加上第n-2项
// fib(n) == fib(n-1) + fib(n-2)

int count = 0;

int fib(int n) {
    
    count++;
    
    // 什么时候跳出来?
    if(n == 0 || n ==
1) return 1;
    
    return fib(n - 1) + fib(n -
2);
}

// 利用递归算阶乘
// n!
// n的阶乘就是从1一直累乘到n本身
// n! = (n-1)! * n
//

int func(int num) {
    // 跳出条件
    if(num == 1)
return 1;
    
    return func(num - 1) * num;
}
int func1(int num) {
    int i = 1, cross =
1;
    for (; i <= num; i++) {
        cross *= i;
    }
    return cross;
}
// 利用递归实现 power函数
// power(2 , 3) = power(2 , 2) * 2

int main(int argc,
const char * argv[]) {
    // insert code here...
    // printf("Hello, World!\n");
    
    // func();
    
    /*
     for (int i = 1; i < 10 ; i++) {
     // printf("%d\t%d\n", i, fib(i));
     
     
     printf("%d, 循环结果为%d,
递归结果为%d\n", i, func1(i), func(i));
     }
     */
    
    fib(9);
    
    printf("执行了%d次\n", count); 
// 6:25   7:41
    
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: