C语言练习3

来源:互联网 发布:如何用记事本编程 编辑:程序博客网 时间:2024/06/05 09:30
////  main.c//  exercise3////  Created by Vision on 14-8-29.//#include <stdio.h>#include <stdlib.h>int main(int argc, const char * argv[]){// 1.(**)随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数//    int i = 0;//    int max = 0;//    while (i <= 20) {//        unsigned int a = arc4random() % (100 - 10 + 1) + 10;//        if (max < a) {//            max = a;//        }//        printf("%u\n", a);//        i++;//    }//    printf("最大值%d", max);// 2. (**)编程将所有“水仙花数”打印出来,并打印其总个数。 “水仙花数” 是一个 各个位立方之和等于该整数的三位数。//    for (int i = 1; i < 10; i++) {//        for (int k = 0; k < 10; k++) {//            for (int j = 0; j < 10; j++) {//                if ((i * i * i) + (k * k * k) + (j * j * j) == (i * 100) + (k * 10) + (j)) {//                    printf("%d%d%d\n", i, k, j);//                }//            }//        }//    }    // 3.(**)已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的 a,b,c 所有组合//    for (int i = 1; i < 10; i++) {//        for (int j = 1; j < 10; j++) {//            for (int k = 1; k < 10; k++) {//                if ((i * 100) + (j * 10) + k + i + (j * 10) + (k * 100) == 1333) {//                    printf("a = %d, b = %d, c = %d\n", i, j, k);//                    //                }//            }//        }//    }    // 4. (***)输入两个数,求最大公约数和最小公倍数。(用两种方法:辗转相除法和普通方法)//辗转相除//    int a = 0, b = 0;//    scanf("%d%d", &a, &b);//    int a1 = a, b1 = b;//    while (a1 % b1 != 0) {//        int x = a1 % b1;//        a1 = b1;//        b1 = x;//    }//    printf("%d", b1);    //普通方法://    int a , b;//    scanf("%d%d", &a, &b);//    int min = a < b ? a : b;//    int maxgy = 1;//    if ((a % min == 0) && (b % min == 0)) {//        maxgy = min;//    } else {//        //        for (int i = min; i >= 1; i--) {//            if(a % i == 0 && b % i ==0) {//                maxgy = i;//                break;//            }//        }//    }//    printf("%d",maxgy);//    int maxgb = a * b / maxgy;//    printf("%d", maxgb);            //5. (***)一个球从100m高度自由落下,每次落地后反跳回原来高度的一 半,再落下,再反弹。求它在第 10 次落地时,共经过多少米?第 10 次反弹多高//    float s = 0.0f,sh = 100.0f;//    int i = 0;//    while (i < 10) {//        s += sh * 2;//        sh /= 2;//        i ++;//    }//    s -= 100;//    printf("%f %f\n", s, sh);    //    结果://    299.609375 0.097656//6.求n个随机数里第二大的数?//    int n = 0;//    int max = 0, laoer = 0;//    scanf("%d", &n);//    while (n > 0) {//        unsigned int random = arc4random() % 10;//        printf("%d\n", random);//        if ( random > max) {//            laoer = max;//            max = random;//            //        } else if (random > laoer) {//            laoer = random;//        }//        n--;//    }//    printf("老二 = %d\n", laoer);    //7.打印 0 - 27 所有和值的概率?    //    float n = 0;//    for (int x = 0; x <= 27; x++) {//        for (int i = 0; i < 10; i++) {//            for (int j = 0; j < 10; j++) {//                for (int k = 0; k < 10; k++) {//                    if ((i + j + k) == x) {//                        n++;//                        //                    }//                }//            }//        }//        printf("%d = %.2f%%\n",x,n / 10);//        n = 0;//    }//8.    输出://        *//      * * *//    * * * * *//      * * *//        *//    for (int i = 1; i <= 3; i++) {//        for (int j =  i; j <= 3; j++) {//            printf("  ");//        }//        for (int j = 1; j <= i *2 -1; j++) {//            printf("* ");//        }//        printf("\n");//    }//    for (int i = 1; i <= 2; i++) {//        for (int j =  1; j <= i + 1; j++) {//            printf("  ");//        }//        for (int j = i * 2 - 1  ; j <= 3 ; j++) {//            printf("* ");//        }//        printf("\n");//    }// 9.   输出空心菱形://        *//       * *//      *   *//     *     *//      *   *//       * *//        *//    int n = 0;//    scanf("%d", &n);//    for (int i = 1; i <= 2 * n - 1; i++) {//        int x1 = (2 * n - 1) - (abs(i - n) * 2);//        int x2 = abs(i -n);//        for (int j = 1; j <= x2; j++) {//            printf(" ");//        }//        for (int j = 1; j <= x1; j++) {//            if (1 == j || j == x1) {//                printf("*");//            } else {//                printf(" ");//            }//            //         }//        printf("\n");//    }//   10. 输入年份,判断是否正确://    int a, b, c;//    int run = 28;//    scanf("%d-%d-%d", &a, &b, &c);//    if (((a % 4 == 0) && (a % 100 != 0)) || (a % 400 == 0)) {//        run++;//    }//    if (b > 12) {//        printf("误");//    }//    switch (b) {//        case 1://        case 3://        case 5://        case 7://        case 8://        case 10://        case 12://            if (c >31 || c <=0) {//                printf("错误");//            }//            break;//        case 2://            if (c > run || c<= 0) {//                 printf("错误");//            }//            break;//        case 4://            case 6://            case 9://            case 11://            if (c >30 || c <= 0) {//                 printf("错误");//            }//            break;//        default://            break;//    }    return 0;}

0 0