
C语言经典100题
深度解析C语言中经典题型得解题思路
咸鱼吐泡泡
这个作者很懒,什么都没留下…
展开
-
C语言经典100题——用二分法在一个有序数组中查找某个数字
<1>题目描述有15个数按由大到小顺序放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”<2>思路分析记录数组中左边第一个元素的下标为left,记录数组右边第一个元素的下标为right,记录中间元素的下标为mid(mid = left+right) 当输入的数在a[mid]的左边时,将right改成mid-1,同时mid = (left+right)/2;当输入的数在a[mid]的右边时,将left改成mid原创 2022-03-09 23:12:08 · 2375 阅读 · 11 评论 -
C语言经典100题——求一个二维数组的鞍点
<1>题目描述找一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点1 2 34 5 67 8 9//3为该二维数组中鞍点<2>思路分析先找到第一行中最大的那个数a 将a与所在的列上其他数字进行比较,如果是最小,则输出a 如果a不是所在列最小的数,则找第二行最小的那个数b,重复第二步,直到找到鞍点 如果每一行中最大数都不是鞍点,则数组无鞍点<3>代码实现#include原创 2022-03-09 21:53:21 · 15462 阅读 · 12 评论 -
C语言经典100题——输出“魔方阵“
<1>题目描述输出“魔方阵”,所谓魔方阵是指它的每一行、每一列和对角线之和均相等。例如:8 1 63 5 74 9 2要求输出1——n^2的自然数构成的魔方阵<2>思路分析将1放在第1行中间一列 从2开始直到n*n止,各数依次按此规则存放:每一个数字存放的行比前一个数的行数减1,列数加1(例如上面的三阶魔方阵,5在4的上一行后一列) 如果上一数的行数为1,则下一个数的行数为n(指最后一行)。(例如,1在第1行,则2应该原创 2022-03-06 17:29:34 · 7563 阅读 · 11 评论 -
C语言经典100题——输出杨辉三角
<1>题目描述输出以下的杨辉三角形(要求输出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1. . . . . .. . . . . . <2>思路分析观察第一列和大矩形对角线上的数字都是1,我们可以将相应位置的元素置为1 除开上面分析的数字,其他数字都是上面左边的原创 2022-03-06 15:10:19 · 1185 阅读 · 2 评论 -
C语言经典题目——将一个数插入已排序好的数组中
<1>题目介绍有一个已排好序的数组,要求输入一个数后,按原来的规律将他插入数组中,例如将3插入1 ,2 ,4 ,7 ,8, 9 ,10 ,11, 13, 100中,得到1 ,2 ,3,4 ,7 ,8, 9 ,10 ,11, 13, 100<2>思路分析将输入的数字一一和数组中的元素对比 如果没有比他大的,就将他放在数组的最后一个位置 如果他在数组中某两个数之间,就将大于它的数全部向后移动一位<3>代码实现int main(){ int ar原创 2022-03-06 14:13:23 · 6551 阅读 · 3 评论 -
C语言经典100题——用选择法排序
<什么是选择法>选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。<解题思路>(1)将数列中的最小数的下标找到(2)让数列中第一个数与最小数通过下标交换位置(3)将剩下数列中的最小数的下标找到,让剩下数列中第一个数与最小数通过下标交换位置(4)重复上面2~3步,直到将整个原创 2022-03-03 16:35:27 · 2224 阅读 · 2 评论 -
C语言经典100题——用筛选法求100之内的素数
<1>什么是筛选法所谓筛选法是指“埃拉托色尼筛法”,埃拉托色尼是古希腊的著名数学家。它采用的方法是,在一张纸上写上1~1000的全部整数,然后逐个判断他们是否为素数,只要找到一个非素数就把他去掉,最后剩下的数就为素数。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32...<2>方法思路(1)先把1给置0,因为他不是素数。(2)将剩下的数(2、原创 2022-03-03 12:57:00 · 6016 阅读 · 4 评论