C语言经典算法100例1.pdf

上传人:zh****71 文档编号:126719319 上传时间:2020-03-27 格式:PDF 页数:53 大小:65.34KB
返回 下载 相关 举报
C语言经典算法100例1.pdf_第1页
第1页 / 共53页
C语言经典算法100例1.pdf_第2页
第2页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言经典算法100例1.pdf》由会员分享,可在线阅读,更多相关《C语言经典算法100例1.pdf(53页珍藏版)》请在金锄头文库上搜索。

1、1 文章由情难枕精心整理 希望对大家的学习和工作带来 帮助 整理人 情难枕 整理时间 2011 4 10 程序 1 题目 有 1 2 3 4 个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 1 程序分析 可填在百位 十位 个位的数字都是1 2 3 4 组成所有的排列后再去 掉不满足条件的排列 2 程序源代码 main int i j k printf n for i 1 i 5 i 以下为三重循环 for j 1 j 5 j for k 1 k 5 k if i k 程序 2 题目 企业发放的奖金根据利润提成 利润低于或等于10 万元时 奖金可提10 利润高 于 10 万元 低于

2、20 万元时 低于 10 万元的部分按 10 提成 高于 10 万元的部分 可可提 成 7 5 20 万到 40 万之间时 高于 20 万元的部分 可提成5 40 万到 60 万之间时高于 40 万元的部分 可提成3 60 万到 100 万之间时 高于 60 万元的部分 可提成1 5 高于 100万元时 超过 100万元的部分按 1 提成 从键盘输入当月利润I 求应发放奖金总数 1 程序分析 请利用数轴来分界 定位 注意定义时需把奖金定义成长整型 2 程序源代码 main long int i int bonus1 bonus2 bonus4 bonus6 bonus10 bonus scan

3、f ld bonus1 100000 0 1 bonus2 bonus1 100000 0 75 bonus4 bonus2 200000 0 5 bonus6 bonus4 200000 0 3 bonus10 bonus6 400000 0 15 if i 100000 bonus i 0 1 else if i 200000 bonus bonus1 i 100000 0 075 else if i 400000 bonus bonus2 i 200000 0 05 2 else if i 600000 bonus bonus4 i 400000 0 03 else if i 10000

4、00 bonus bonus6 i 600000 0 015 else bonus bonus10 i 1000000 0 01 printf bonus d bonus 程序 3 题目 一个整数 它加上100 后是一个完全平方数 再加上168 又是一个完全平方数 请问该 数是多少 1 程序分析 在 10万以内判断 先将该数加上100后再开方 再将该数加上268后再开方 如 果开方后 的结果满足如下条件 即是结果 请看具体分析 2 程序源代码 include math h main long int i x y z for i 1 i2 如果是闰年且月份大于2 总天数应该加一天 sum pri

5、ntf It is the dth day sum 程序 5 题目 输入三个整数 x y z 请把这三个数由小到大输出 1 程序分析 我们想办法把最小的数放到x 上 先将 x 与 y 进行比较 如果x y 则将 x 与 y 的 值进行交换 然后再用 x 与 z进行比较 如果x z 则将 x 与 z 的值进行交换 这样能使x 最小 2 程序源代码 main int x y z t scanf d d d if x y t x x y y t 交换 x y 的值 if x z t z z x x t 交换 x z 的值 if y z t y y z z t 交换 z y 的值 printf sma

6、ll to big d d d n x y z 程序 6 题目 用 号输出字母 C 的图案 1 程序分析 可先用 号在纸上写出字母C 再分行输出 2 程序源代码 include stdio h main printf Hello C world n printf n printf n printf n printf n 程序 7 4 题目 输出特殊图案 请在c 环境中运行 看一看 Very Beautiful 1 程序分析 字符共有256个 不同字符 图形不一样 2 程序源代码 include stdio h main char a 176 b 219 printf c c c c c n b

7、 a a a b printf c c c c c n a b a b a printf c c c c c n a a b a a printf c c c c c n a b a b a printf c c c c c n b a a a b 程序 8 题目 输出 9 9 口诀 1 程序分析 分行与列考虑 共9 行 9 列 i 控制行 j 控制列 2 程序源代码 include stdio h main int i j result printf n for i 1 i 10 i for j 1 j 10 j result i j printf d d 3d i j result 3d表

8、示左对齐 占3 位 printf n 每一行后换行 程序 9 题目 要求输出国际象棋棋盘 1 程序分析 用 i 控制行 j 来控制列 根据i j 的和的变化来控制输出黑方格 还是白方格 2 程序源代码 include stdio h main int i j for i 0 i 8 i for j 0 j 8 j if i j 2 0 5 printf c c 219 219 else printf printf n 程序 10 题目 打印楼梯 同时在楼梯上方打印两个笑脸 1 程序分析 用 i 控制行 j 来控制列 j 根据 i 的变化来控制输出黑方格的个数 2 程序源代码 include s

9、tdio h main int i j printf 1 1 n 输出两个笑脸 for i 1 i 11 i for j 1 j i j printf c c 219 219 printf n 作者 zhlei81 2005 1 22 11 29 回复此发言 3 回复 经典 C 源程序 100 例 程序 11 题目 古典问题 有一对兔子 从出生后第3 个月起每个月都生一对兔子 小兔子长到第三个 月 后每个月又生一对兔子 假如兔子都不死 问每个月的兔子总数为多少 1 程序分析 兔子的规律为数列1 1 2 3 5 8 13 21 2 程序源代码 main long f1 f2 int i f1 f

10、2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 6 if i 2 0 printf n 控制输出 每行四个 f1 f1 f2 前两个月加起来赋值给第三个月 f2 f1 f2 前两个月加起来赋值给第三个月 程序 12 题目 判断 101 200之间有多少个素数 并输出所有素数 1 程序分析 判断素数的方法 用一个数分别去除2 到 sqrt 这个数 如果能被整除 则表明此数不是素数 反之是素数 2 程序源代码 include math h main int m i k h 0 leap 1 printf n for m 101 m 200 m k sqrt m

11、1 for i 2 i k i if m i 0 leap 0 break if leap printf 4d m h if h 10 0 printf n leap 1 printf nThe total is d h 程序 13 题目 打印出所有的 水仙花数 所谓 水仙花数 是指一个三位数 其各位数字立方和等于该 数 本身 例如 153是一个 水仙花数 因为 153 1 的三次方 5 的三次方 3 的三次方 1 程序分析 利用for 循环控制 100 999个数 每个数分解出个位 十位 百位 2 程序源代码 main int i j k n printf water flower numb

12、er is for n 100 n 1000 n i n 100 分解出百位 j n 10 10 分解出十位 7 k n 10 分解出个位 if i 100 j 10 k i i i j j j k k k printf 5d n printf n 程序 14 题目 将一个正整数分解质因数 例如 输入90 打印出 90 2 3 3 5 程序分析 对 n进行分解质因数 应先找到一个最小的质数k 然后按下述步骤完成 1 如果这个质数恰等于n 则说明分解质因数的过程已经结束 打印出即可 2 如果 nk 但 n 能被 k 整除 则应打印出k 的值 并用 n 除以 k 的商 作为新的正整数你n 重复执行

13、第一步 3 如果 n不能被 k 整除 则用 k 1 作为 k 的值 重复执行第一步 2 程序源代码 zheng int is divided yinshu main int n i printf nplease input a number n scanf d printf d n for i 2 i 90 分的同学用 A 表示 60 89分之间 的用 B 表示 60 分以下的用 C 表示 8 1 程序分析 a b a b这是条件运算符的基本例子 2 程序源代码 main int score char grade printf please input a score n scanf d gr

14、ade score 90 A score 60 B C printf d belongs to c score grade 程序 16 题目 输入两个正整数m 和 n 求其最大公约数和最小公倍数 作者 zhlei81 2005 1 22 11 30 回复此发言 4 回复 经典 C 源程序 100 例 1 程序分析 利用辗除法 2 程序源代码 main int a b num1 num2 temp printf please input two numbers n scanf d d if num1 temp num1 num1 num2 num2 temp a num1 b num2 whil

15、e b 0 利用辗除法 直到b 为 0 为止 temp a b a b b temp printf gongyueshu d n a printf gongbeishu d n num1 num2 a 程序 17 题目 输入一行字符 分别统计出其中英文字母 空格 数字和其它字符的个数 1 程序分析 利用while 语句 条件为输入的字符不为 n 9 2 程序源代码 include stdio h main char c int letters 0 space 0 digit 0 others 0 printf please input some characters n while c get

16、char n if c a else others printf all in all char d space d digit d others d n letters space digit others 程序 18 题目 求 s a aa aaa aaaa aa a的值 其中 a 是一个数字 例如2 22 222 2222 22222 此时 共有 5 个数相加 几个数相加有键盘控制 1 程序分析 关键是计算出每一项的值 2 程序源代码 main int a n count 1 long int sn 0 tn 0 printf please input a and n n scanf d d printf a d n d n a n while count n tn tn a sn sn tn a a 10 count printf a aa ld n sn 程序 19 10 题目 一个数如果恰好等于它的因子之和 这个数就称为 完数 例如 6 1 2 3 编程 找出 1000 以内的所有完数 1 程序分析 请参照程序 上页程序 14 2 程序源代码 main static int

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号