谭浩强c语言程序设计第四版
BearPot
你太容易因为别人优秀而焦虑 你需要的是平静的把自己的事做好
展开
-
输入一行字符,将字符串中最长的单词输出
题目:输入一行字符,栗如:hello i like code 输出hello;如果一行字符最长的单词有多个,则输出最后保存的最长单词。如输入:okli mnbv 则输出为:mnbv思路:单词以空格进行分隔,因此寻找空格出现的位置即为关键,每次从单词的起始到空格出现的位置即为一个单词,此时计算单词的长度,如果比当前最大的还长,就进行更新最长单词的信息,当整个字符串遍历完成,即找到最长的单词。假如我们输入lmndefgk,我们设每个单词开头字母的下标为a初始化为0(为了解决字符一开始是空格)..原创 2021-12-14 12:27:09 · 8109 阅读 · 3 评论 -
二分查找(折半)
目录折半查找排序过程代码实现一、折半查找折半查找(Binary Search)也称二分查找,是一种效率较高的查找方法,但是折半查找有局限性,它只适用于顺序存储结构的有序表二、排序过程从表的中间位置开始,判断与给定的值是否相等,若相等则查找成功,若不相等,根据中间值的大小,将查找范围缩小一半到左序列或者右序列,重复操作,完成查找- - 优点 比较次数少,查找效率高 缺点 只适用于顺序存储的有序表 图示:算法思路:这里我..原创 2021-10-31 12:45:00 · 454 阅读 · 0 评论 -
C语言:斐波那契数列最简单方法
题目:斐波那契数列(Fibonacci sequence),指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥ 2,n ∈ N*)思路:斐波那契数列的核心思想就是当下一次循环时,上次循环的第一个数等于上次循环的第二个数,上次循环的第二个数等于上次循环的第三个数,也就是第一个数加第二个数的值。代码示例:int main(){ int f1 = 1;原创 2021-10-13 22:40:21 · 5180 阅读 · 0 评论 -
C语言:给一个正数,求出他是几位数,分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123
题目://给一个正数//求出他是几位数//分别输出每一位数字//按逆序输出各位数字,例如原数为321,应输出123思路:1.几位数,逆序输出:设n=123 %10 得3 得到个位输出,再丢掉个位 123/10得12 循环当n/10等于0 输出循环次数及为几位数2顺序输出:设n等于123, 123/100 得最高位1 输出,再丢弃最高位1,123%100得23;23/10得2,输出,再丢弃23%10得3, 3/1得3输出 。 n/10^n位次-1 n%10^n...原创 2021-10-13 21:00:20 · 11827 阅读 · 2 评论 -
C语言:猴子吃桃问题
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子?思路:逆向思维,从最后一天算起,最后一天剩一个,那么前一天就剩(1+1)*2个因此设某一天剩桃子m个,前一天桃子n个,往前类推即n=(m+1)*2注意:10天最后一天只剩1个桃子,程序只需循环9次代码示例:运行结果:...原创 2021-10-05 12:07:14 · 16326 阅读 · 9 评论 -
C语言:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。排出比赛名单
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。思路:循环依次比较,两两比较,判断参赛队员是否重复,因此需要两个if 在循环中间判断代码实现://两个乒乓球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人//以抽签决定比赛名单。有人向队员打听比赛名单,A说他不和X比,C说他不和X,Z比//请编程序找出3对赛手名单i原创 2021-10-05 13:23:34 · 26400 阅读 · 1 评论 -
谭浩强c语言程序设计第四版课后习题:求Sn=a+aa+aaa+aaaa+...n个a ,a是数字 ,n表示a的位数
题目:计算 a+aa+aaa+aaaa+aaaaa+…+a…a(n个a)的值,n和a由键盘输入。思路:解决这种问题一般是找规律,找出通项。假设a=2 n=3那么就是2+22+222,其中22=2+2*10^2222=2+2*10^2+2*10^3那么我的想法就是定义a,n和一个b,让b的初始值等于a,在循环体中让b等于每一次算完的新一项,在定义一个sum用来储存每次算完的前几项和代码示例如下://求sn=a+aa+aaa+aaaa+...n个a ,a是数字 ,n表示a的位数原创 2021-10-05 13:44:07 · 5021 阅读 · 1 评论 -
C语言:给一个不多于5位的正整数,要求:求出他是几位数分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123
题目:给一个不多于5位的正整数,要求:求出他是几位数分别输出每一位数字,按逆序输出各位数字,例如原数为321,应输出123思路:构造循环,将输入的数字进行取余,并且依次输出余数,再对其进行除数操作,得到的商再进行取余输出操作。例如321取余为1,输出1.321除10商32 32取余为2 输出232除10商 3 3取余为3 输出3结果123代码示例:int main(){ int num; int temp = 0; printf("请输入数字:"); scanf(..原创 2021-10-07 20:31:00 · 18244 阅读 · 13 评论