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);

//        }

//    }

时间: 2024-10-12 00:47:12

C语言经典排序的相关文章

【最全】经典排序算法(C语言)

本文章包括所有基本排序算法(和其中一些算法的改进算法): 直接插入排序.希尔排序.直接选择排序.堆排序.冒泡排序.快速排序.归并排序.基数排序. 算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首元素,并把它赋值给temp变量: 从排好的序列中,依次与temp进行比较,如果元素比temp大,则将元素后移(实际上放置temp的元素位置已经空出) 直到

经典排序算法的PHP实现类

近期广受笔试摧残,对于各种排序也是晕头转向. 更坑爹的是貌似大多都是用C++.Java实现相关算法,让我搞PHP的情何以堪,更何况,PHP本身就有排序函数sort(),其实来说,是很简单的,这也可能是为什么不用PHP进行排序吧. 但考虑到PHP毕竟也是一门面向对象的语言吧,我们利用原生的语法,也是可以实现经典排序算法的,先不说性能如何,切不要妄自菲薄吧. 下面为具体的经典排序算法的PHP实现类. <?php /** * Author: helen * CreateTime: 2016/4/15

【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n)[10]; struct MyStruct { char dda; double dda1; int type ; }; MyStruct k; printf("%d %d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(

C语言常用排序全解(转)

目的:重温经典排序思想,并用C语言指针实现排序算法================================================*/ /*=============================================================================相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):1.稳定排序和非稳定排序  简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就说这种排序方法

Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现

2017年4月29日~5月1日,国际劳动节, 三天的小长假. 在国内,小长假往往是这样的: 然而我当时在戏称为"德村"(德国农村)的Walldorf出差并且住在Wiesloch, 这里的五一小长假能听见鸟叫,虫鸣,和风吹过的声音,除此之外再无其他. 街道上别说行人了,连行驶的汽车都很少. 如果一个在成都习惯了热闹生活的人,到了这种乡下地方来估计会觉得百无聊赖.当时国内有同事建议我小长假去德国其他地方转转,然而作为一个30年资深宅男,一个人出去转不是我的风格. 五一放假之前,坐我对面的一

一文搞定十大经典排序算法(Java实现)

本文总结十大经典排序算法及变形,并提供Java实现. 参考文章: 十大经典排序算法总结(Java语言实现) 快速排序算法—左右指针法,挖坑法,前后指针法,递归和非递归 快速排序及优化(三路划分等) 一.排序算法概述 1.定义 将杂乱无章的数据元素,通过一定的方法按关键字顺序排列的过程叫做排序. 2.分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不通过比较

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

经典排序算法

经典排序算法(via  kkun) 经典排序算法,以下文章参考了大量网上的资料,大部分都给出了出处 这一系列重点在理解,所以例子什么的都是最简单的情况,难免失误之处,多指教 大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧 经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort 经典排序算法 -  插入排序Insertion sort 经典排序算法 - 基数排序Radix so

Javascript基础练习之实现C语言经典程序题

前言: 最近在学习Javascript语言,看到网上很多都是在介绍Javascript如何解决网页上问题的代码,所以想另辟蹊径,用Javascript代码来实现C语言经典程序题.当然,这些C语言程序题也是比较简单,主要想通过Javascript语言实现,起到语法练习作用,也想来对比一下C语言和Javascript语言实现的相同点和不同点,从而巩固记忆,加强学习效果!!! 一.C语言经典程序题1 1. 题目描述: 马克思的手稿中有这样一道有趣的数学题:有30个人,其中有男人,女人,小孩.他们在一家