C的一些程序代码
Java是由C发展演变过来的,语法,结构,规则都有很多相同之处,我就不再详细写了,可以看我之前写的Java语法。我经常看的一个网站“菜鸟教程”,里面有很全面的讲解,但是我觉得美中不足的就是案例太少了,对于初学者来说只看一段代码就去理解有点困难,我下面的所有关于C的会分享一些代码。对于一些基础的C知识,除了一些注意外我不再写了。
1,从键盘输入一个三位的整数num,将其个,十,百位倒序生成一个数字输出,例如,若输出123,则输出321.
分析:一个三位数,将其个十,百位倒序形成一个数,则需要分别求算出它的个,十,百位数字。倒序组合即可。
2,想必大家都听过三只小猪的故事,这次的案例也和三只小猪有关,但是今天的故事中没有凶恶的大灰狼,我们关心的是这三只小猪的体重。案例要求任意输入三个分别代表三只小猪体重的整数,通过编程使这三个整数从小到大排列,并将排序的结果显示在屏幕上。
3,水仙花数就是一个三位数,它有这样的规律1³+5³+3³=153。每一位数字的三次幂之和都等于它本身。本案例要求设计程序,算出所有的水仙花数。
分析:水仙花数就是一个三位数,因此要求出所有的水仙花数,需要将100~999范围内的所有数都遍历,要遍历这个范围的数,需要使用循环语句。
算法设计:(1)因为水仙花数是一个三位数,所以确定数据的取值范围为100~999;控制取值范围可以使用for循环语句。
(2)使用运算符把数据的个位,十位,百位拆分,求个数字的立方和:
①将此数对10取余,即可得到个位上的数字;
②将此数除以10,然后对10取余,即可得到十位上的数字;
③将此数整除100,即可得到百位上的数字;
(3)求出各位数字的立方和,判断它与数本身是否相等,若相等则此数就是水仙花数,否则不是水仙花数。
4,中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡”问题:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?
分析:如果用一百钱买一种鸡,那么,公鸡最多20只,母鸡最多33只,小鸡最多300只。但题目要求买100只,所以小鸡的数量在0~100之间,公鸡的数量在0~20之间,母鸡的数量在0~33之间。我们把公鸡、母鸡、小鸡的数量分别设为cock、hen、chicken,通过分析可知:
(1)0<=cock<=20
(2)0<=hen<=33
(3)0<=chicken<=100
(4)cock+hen+chicken=100
(5)5*cock+3*hen+chicken/3=100
与此同时,可知公鸡、母鸡、小鸡的数量相互限制
案例设计:(1)先定义三个整形变量分别用来存储公鸡母鸡和小鸡;
(2)第一层for循环控制公鸡的数量,第二层for循环控制母鸡的数量,第三层for循环控制小鸡的数量;
(3)根据这三层循环我们可以得到很多种方案,但是其中有很多是不符合条件的,我们要把合理的方案筛选出来,即把满足“cock+hen+chicken=100”和“5*cock+3*hen+chicken/3=100”的方案输出。
算法优化
上述算法需要尝试21x34x101=72114次,为了提高效率,我们可以对算法进行优化。当公鸡和母鸡的数量确定后,小鸡数量固定为100-cock-hen,此时约束条件只剩条件(5)了。代码如下:
次算法只需要尝试21x34次,大大缩短了运算时间。
5,打印九九乘法表
6、若整数i,从左向右与从右向左读是相同的数,且i为素数,则称其为回文素数。
对于偶数位的整数,只有11是回文素数。但三位回文素数很多,比如:101,131,151,181……要求通过编程求出所有小于1000的回文素数。
案例设计:(1)先采用穷举法对1000以内的所有整数进行遍历,判断其是否为素数。判断一个数是否为素数的关键在于,判断整数能被1和它自身之外的其他整数所整除,如果都不能整除,则此数为素数。
(2)如果此数为素数,则继续判断此数是两位数还是三位数
(3)如果为两位数,则判断其个位和十位是否相同,如果相同则说明此数为回文素数;如果是三位数,则判断其百位和个位是否相同,如果相同则说明此数为回文素数。