典型例题
学习专用
程序番茄君
生而无畏,战至终章。
展开
-
小习题:IP地址形式输出
一.题目概要:任意输入32位的二进制数,编程实现将该二进制数转换成IP地址形式。举例如下:输入:11111111111111111111111100000000输出:255.255.255.0二.算法分析:方法一:(1)先定义一个大小为33字符型数组来存我们所输入的32位的二进制数和一个全局变量为0的i。(2)再定义一个大小为4的整型数组来存每8位二进制数所转的整型数。(3)转换过程:首先定义一个整型变量m=128和一个变量sum=0(用以存每8转换之后数字的和),然..原创 2021-11-27 22:16:11 · 2891 阅读 · 7 评论 -
小习题:巧分苹果
一.题目概要:一家农户以果园为生,一天,父亲推出一车苹果,共2520个,准备分给他的6个儿子。父亲按事先写在一张纸上的数字把这堆苹果分完,每个人分到的苹果个数都不相同。他说:“老大,把你分到的苹果的1/8给老二,老二拿到后,连同原来的苹果分1/7给老三,老三拿到后,连同原来的苹果的1/6给老四,依此类推,最后老六拿到后,连同原来的苹果分1/3给老大,这样,你们每个人分到的苹果就一样多了。”问兄弟6人原先各分到多少只苹果?运行结果如图4.8所示。二.算法分析:(1)由题可知父亲用完这中...原创 2021-11-04 23:33:48 · 1002 阅读 · 7 评论 -
小习题:n进制转换为十进制
一.题目概要:编程实现任意输入一个数,并输入几进制,则程序根据你所输入的信息,将其转化为十进制并输出,如果数据与进制不符合,则输出错误并退出程序。二.算法分析:(1)为了方便16进制时的判断,所以我们得事先将字母统一为大写字母。void strupr(char *p){ while(*p) { if(*p>='a' && *p<='z') { *p-='a'-'A'; } p++; }}(2)判断你所输入的数据与进制是.原创 2021-10-31 23:18:26 · 863 阅读 · 10 评论 -
小习题:按要求求数
一.题目概要:从键盘中输入三个数(m,n,s),n为位数,每位数的最大值为m,位数之和为s,请求出所有不重复的结果。二.算法分析:(1)定义数字的取值范围,拿三位数举例,三位数的范围为100~mmm。代码如下:int n,m,s;int min=1,max;printf("所输入的数字位数:");scanf("%d",&n);printf("每位数最大值:");scanf("%d",&m);printf("所有位之和为:");scanf("%d",&am.原创 2021-10-30 10:49:26 · 224 阅读 · 9 评论 -
小习题:判断三角形的类型
一.题目概要:根据给定的三个边的边长判断是否构成三角形。如果构成,再判断该三角形是什么形式的三角形?是普通三角形,还是等腰三角形,又或者是等边三角型。二.算法分析:为了实现本算法,共需要三次判断:(1)第一次判断:根据三个边的边长判断是否构成三角形。(2)当构成三角形时,再进行一次判断,判断是否为等边三角形。(3)如果不是等边三角形,再进行一次判断,判断是否为等腰三角形。(4)如果不是等腰三角形,则是普通三角形。三.代码实现:#include<stdio.h.原创 2021-10-17 00:19:27 · 267 阅读 · 0 评论 -
小习题:求水仙花数
一.题目大概:输出所有的水仙花数,水仙花数是指一个三位数,它的每位上的数字的3次幂之和等于它本身。(如:1^3+5^3+3^3=153)二.算法分析:(1)水仙花数是一个三位数,所有设一个变量x从100开始,自加到999。(2)取它的个位、十位、百位。通过一些降位、取余运算。(3)再将它的个位、十位、百位这三个数字的3次幂之和求出,并与x进行判断,若相等则打印数字,反之继续自加。三.程序代码:#include<stdio.h>int main(){ int原创 2021-10-04 23:17:18 · 512 阅读 · 2 评论 -
小习题:求一个数的阶乘
一.题目大概:给一个数n,利用程序计算出它的阶乘,并把结构输出打印出来。二.算法分析:(1)非递归算法:设置一个变量从1加到n,每次加完后,都让它跟初值为1的变量sum相乘,直到跳出循环后,sum的值就是该数的阶乘结果。(2)递归算法:计算n的阶乘,如果知道n-1的阶乘,再乘以n就是n的阶乘了。例如:5!=5*4!从上面例子可以得出一个函数执行语句:n*fun(n-1)然后利用该语句进行递归。三.代码:(1)#include<stdio.h>i.原创 2021-09-24 21:42:16 · 323 阅读 · 2 评论 -
小习题:歌唱比赛打分
一.题目大概:某次校园歌唱比赛,有10位评委打分,打分规则是:去掉一个最低分,去掉一个最高分,剩下的8个分数之平均分就是该选手的分数。二.算法分析:1.第一种:(1)定义一个浮点型数组score,以及三个浮点型变量max、min、sum。(2)利用一个for循环语句将10次的分数输入到数组中,并同时给max、min赋予第一次的值(方便后面的取最大值与最小值)。(3)再利用一个for循环语句,对这十次分数取最大值与最小值(用两个if语句来实现),同时将这十次的分数的和给求出。(4)原创 2021-09-21 00:16:15 · 2585 阅读 · 6 评论 -
小习题:按成绩降序排序
一.题目大概:如表所示为一张学生成绩表,设计一个程序,能够根据学生的成绩进行降序排序,并打印出排序忽的结果。学号 姓名 成绩 学号 姓名 成绩 1 王强 78 5 刘伟 90 2 李丽 65 6 张平 98 3 张宁 79 7 赵红 75 4 杨林 98 8 陆平 84 二.算法分析:(1)按题目可知,有三种信息类别,分别为学号原创 2021-09-19 09:24:57 · 2328 阅读 · 6 评论 -
小习题:洛书河图
一.题目内容:大约两千多年前西汉时代,当时流传夏禹治水时,黄河中跃出一匹神马,马背上驮着一幅画,人称“河图”;又洛河水中浮出一只神龟,龟背上有一张象征吉祥的图案称为“洛书”。“河图”和“洛书”组成的图案的每一列,每一行及对角线,加起来的数字和都是一样的矩阵,这就是我们现在所称的幻方。例如,下述矩阵就是一个幻方:4 9 23 5 78 1 6试写出一程序来判断一个3阶矩阵是否为幻方。二. 具体分析:...原创 2021-09-16 17:36:32 · 498 阅读 · 4 评论 -
小习题:猴子吃桃问题
一.题目大概:小猴子摘了一大堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个,第二天又吃了剩下的一半还多一个······以后每天如此,到了第十天,小猴子一看只剩下一个桃子了,它想知道最初自己摘了多少个桃子。二.解题思路:根据每天吃前天剩下的一半再加一个,可设一个公式。设第n天剩下了k个,则n-1天剩下x个,则可列一个公式x-(x/2+1)=k,即x=2k+2。又已知第十天,小猴子只剩下一个桃子,故可利用之前的公式进行逆推算出未开始时的桃子数量。三.代码实现:#include<st.原创 2021-09-14 21:58:29 · 1566 阅读 · 5 评论 -
小习题:员工的销售额判断
一.题目大概:根据某员工的销售额计算销售提成,销售额小于等于10000,提成为5%,销售额大于10000,小于等于20000,提成为8%,销售额大于20000,提成为10%。二.解题思路:(1)利用条件运算符来写出代码,先判断是否大于20000,若大于,则乘10%;不大于,再判断是否大于10000,若大于,则乘8%;否则,则5%。(2)利用if-else语句来写出代码,先判断是否大于20000,若大于,则乘10%;不大于,再判断是否大于10000,若大于,则乘8%;否则,则5%。三.代码原创 2021-09-13 14:06:05 · 533 阅读 · 2 评论