C语言编程练习2

1.用函数调用的方式求单词个数(用递归实现)
自己做题思路:先定义一个名为count的自定义函数。count函数里头if(s[i]==‘\0’)语句的作用有两个,第一,判断s数组第一个元素是否等于\0,若是,直接返回值0,即代表s数组里无单词。第二,为构成递归形成条件,当碰到数组里最后一个字符\0,才会返回值0。 第一个while循环的功用是统计一个单词有几个英文字符;第二个while循环的功用是统计空格的数量。通过递归,count自定义函数最后会返回4。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.输出杨辉三角形的前七行。
自己做题思路:杨辉三角形是一个很经典的例子。做这种题第一步要去做的就是寻找规律。规律很简单,第一列和主对角线都为1,其余的每个数都是其左上方和右上方的数之和。用图来表示更为清晰明了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.产生并输出如下形式的方阵。
1 2 2 2 2 2 1
3 1 2 2 2 1 4
3 3 1 2 1 4 4
3 3 3 1 4 4 4
3 3 1 5 1 4 4
3 1 5 5 5 1 4
1 5 5 5 5 5 1
自己做题思路:这题是数字图形输出题。显然易见,也存在规律。即两条对角线上的元素都为1,其余的元素可构成四个三角形区域,上边是2,左边是3,右边是4,下边是5。由此可以用循环和多分支语句来编程。通过分析行变量i和列变量j的关系,可写出5个判断表达式(其中第五个可不写,因为剩余的元素最后是可以确定的)。
在这里插入图片描述
在这里插入图片描述
4.编写程序打印菱形图案。
自己做题思路:这道题有两种做法。一种是采用分别输出上三角和下三角。另一种是采用坐标法。我选择后者,原因有二,一是程序量少,二是好记易实现。现分析一下坐标法,外循环for是控制行下标i,i的值有3、2、1、0、-1、-2、-3。外循环体中第一个for循环的功用是输出空格,它的个数正好是下标i的绝对值。第二个for循环的功用是输出星号,其规律是7减去2乘下标i的绝对值。每执行完一行后还要换行。还有值得一提的是abs()函数,它的头文件是math.h或stdlib.h。我用的是iPad端的code APP,在这个编译器中,abs()只能用stdlib.h 头文件,用math.h会出现报错。另外,fabs()函数是在math.h里的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.计算二维数组中最大值所在行的平均值。(用下标法求最值)
自己做题思路:这道题最关键的地方就是fun函数。第一个双重for循环的目的就是找出最大值。a[i][j]是二维数组每个元素,a[m][n]是最大值,a[i][j]中但凡有比暂定的a[m][n]大的,就开始最大值下标的刷新。直到最后确定了最大值为止。还有个for循环的目的是把最大值那行的数累加,最后再返回计算好的平均值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值