第7章常用基本算法的C语言实现 7.1统计与计数问题算法 7.2累加/累乘求和与求积问题算法 7.3解决不确定性问题的穷举算法 4排序问题算法 7.4 5数值积分算法 7.6多项式计算问题算法 7.7非线性方程求解问题算法 7.8产生随机数算法
第7章 常用基本算法的C语言实现 7.1统计与计数问题算法 7.2 累加/累乘求和与求积问题算法 7.3 解决不确定性问题的穷举算法 7.4排序问题算法 7.5数值积分算法 7.6多项式计算问题算法 7.7非线性方程求解问题算法 7.8产生随机数算法
7.1统计与计数问题算法 统计与计数问题应用比较普遍,一般方法 是:设定一个计数器变量 count,初值为0 每获得一个数据,进行必要判断后,若满足 统计条件,则计数器变量 count加1,这样当 对所有数据进行判断后,计数器变量 count的 值就是统计的结果。 【例7.1】输入若干非0实数,统计其中正 数的个数,负数的个数。遇到0时结束。 分析:设两个计数器变量n和m,n用于统 计正数的个数,m用于统计负数的个数
7.1统计与计数问题算法 统计与计数问题应用比较普遍,一般方法 是:设定一个计数器变量count,初值为0, 每获得一个数据,进行必要判断后,若满足 统计条件,则计数器变量count加1,这样当 对所有数据进行判断后,计数器变量count的 值就是统计的结果。 【例7.1】输入若干非0实数,统计其中正 数的个数,负数的个数。遇到0时结束。 分析:设两个计数器变量n和m,n用于统 计正数的个数,m用于统计负数的个数
#include <stdio h> main( i int n, m double x n=0,m=0; printf("please input real numbers: n ") scanf(%lf " &x) while(x!=0) {if(x>0)n++ else m++ scanf(%lf " &a) printf("plus=%d, negative=%dn",n,m) Return
#include <stdio.h> main( ) { int n,m; double x; n=0; m=0; printf("please input real numbers:\n "); scanf("%lf ",&x); while(x!=0) {if(x>0) n++; else m++ scanf("%lf ",&a); } printf("plus=%d,negative=%d\n ",n,m); } [Return]
7.2累加/累乘求和与求积问题算法 求解累加和问题时,存放求和结果的变量(例如 sum)初值一般为0,采用循环的方式获取数据,每 循环一次,求和变量累加一个数据,最后求和变量的 值即为这些数据累加的和。 求解累乘问题时,存放乘积结果的变量(例如 mul)初值一般为1,将每次获取的待累乘的数据依次 连乘到乘积结果变量,最后乘积变量的值即为这些数 据连乘的积。 例7.3】输入n个整数,计算并输出平均成绩, 要求输出精确到两位小数
7.2 累加/累乘求和与求积问题算法 求解累加和问题时,存放求和结果的变量(例如 sum)初值一般为0,采用循环的方式获取数据,每 循环一次,求和变量累加一个数据,最后求和变量的 值即为这些数据累加的和。 求解累乘问题时,存放乘积结果的变量(例如 mul)初值一般为1,将每次获取的待累乘的数据依次 连乘到乘积结果变量,最后乘积变量的值即为这些数 据连乘的积。 【例7.3】输入n个整数,计算并输出平均成绩, 要求输出精确到两位小数
【例7.3】输入n个整数,计算并输出平均成绩,要求输出精确到 两位小数 算法的程序代码如下: #include <stdio. h>" main( fint i, score, sum=0 double ave printf("please input n=n"; scanf(%d", &n) printf("input %d number n",n) for(l; K<=n; i++) i scanf(%d", &score) sum+=score ave=sum/n printf("average=%.2fn", ave) Return
【例7.3】输入n个整数,计算并输出平均成绩,要求输出精确到 两位小数。 算法的程序代码如下: #include <stdio.h>" main( ) {int i, score, sum=0 double ave; printf("please input n=\n "); scanf("%d ",&n); printf("input %d number :\n ",n); for(i=1;i<=n;i++) { scanf("%d ",&score); sum+=score; } ave=sum/n; printf("average=%.2f\n ",ave); } [Return]