C语言经典排序

题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?  1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去  掉不满足条件的排列。

    */

//    int count = 0;

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

//        for (int j = 1; j < 5; j++) {

//            for (int k = 1; k < 5; k++) {

//                if (i != j && i != k && j != k) {

//                    printf("%d%d%d\n", i, j, k);

//                    count++;

//                }

//            }

//        }

//    }

//    printf("count = %d\n", count);

 


题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高

    于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提

    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于

    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于

    100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?  1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

    profit 利润

    bonus 奖金

    */

//    long int profit = 0;

//    int  bonus = 0, bonus1 = 0, bonus2 = 0, bonus4 = 0, bonus6 = 0, bonus10 = 0;

//    bonus1=100000*0.1;

//    bonus2=bonus1+100000*0.75;

//    bonus4=bonus2+200000*0.5;

//    bonus6=bonus4+200000*0.3;

//    bonus10=bonus6+400000*0.15;

//    printf("请输入当月利润:\n");

//    scanf("%ld", &profit);

//    if (profit <= 0) {

//        printf("当月无利润!");

//    }else if (profit <= 100000){

//        bonus = profit * 0.1;

//    }else if (profit <= 200000){

//        bonus = bonus1 + (profit - 100000) * 0.075 ;

//    }else if (profit <= 400000){

//        bonus = bonus2 + (profit - 200000) * 0.05;

//    }else if (profit <= 600000){

//        bonus = bonus4 + (profit - 400000) * 0.03;

//    }else if (profit <= 1000000){

//        bonus = bonus6 + (profit - 600000) * 0.015;

//    }else{

//        bonus = bonus10 + (profit - 1000000) * 0.01;

//    }

//    printf("bonus = %d", bonus);

题目:输入某年某月某日,判断这一天是这一年的第几天?

    1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

    */

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

//    printf("Please input year, month, day\n");

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

//    switch (month) {//先计算某月以前的月份的天数

//        case 1:

//            sum = 0;

//            break;

//        case 2:

//            sum = 31;

//            break;

//        case 3:

//            sum = 59;

//            break;

//        case 4:

//            sum = 90;

//            break;

//        case 5:

//            sum = 120;

//            break;

//        case 6:

//            sum = 151;

//            break;

//        case 7:

//            sum = 181;

//            break;

//        case 8:

//            sum = 212;

//            break;

//        case 9:

//            sum = 243;

//            break;

//        case 10:

//            sum = 273;

//            break;

//        case 11:

//            sum = 304;

//            break;

//        case 12:

//            sum = 334;

//            break;

//        default:

//            printf("data error.");

//            break;

//    }

//    sum = sum + day;//再加上当月的天数

//    if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {//判断是否为闰年

//        leap = 1;

//    }else{

//        leap = 0;

//    }

//    if (leap == 1 && month > 2) {//如果是闰年并且是2月份后面的月份,那么加一天

//        sum++;

//    }

//    printf("%d年%d月%d日是本年的第%d天\n", year, month, day, sum);

 题目:输出9*9口诀。

    1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

    */

//    for (int i = 1; i < 10; i++) {//控制行

//        for (int j = 1;j < i + 1;j++) {//控制列

//            printf("%d * %d = %2d  ", i , j , i * j);

//        }

//        printf("\n");

//    }

//计算阶乘

    //首先需要知道 阶乘的基数,阶乘值,乘数

//    int n = 0, i = 1, p = 1;

//    printf("Please enter a number:\n");

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

//    while (i <= n) {

//        p = p * i;

//        i++;

//    }

//    printf("%d的阶乘为%d\n", n, p);

 


//水仙花数

//    int i = 0, j = 0, k = 0;

//    printf("water flower number is:\n");

//    for (int n = 100; n < 1000; n++) {

//        i = n / 100;

//        j = n / 10 % 10;

//        k = n % 10;

//        if (i * i * i + j * j * j + k * k * k  == n) {

//            printf("%d%d%d  ", i, j, k);

//        }

//    }

将C语言梳理一下,分布在以下10个章节中:

  1. Linux-C成长之路(一):Linux下C编程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成长之路(二):基本数据类型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成长之路(三):基本IO函数操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成长之路(四):运算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成长之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成长之路(六):函数要义 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成长之路(七):数组与指针 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成长之路(八):存储类,动态内存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成长之路(九):复合数据类型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成长之路(十):其他高级议题

相关推荐