好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Chap2用C语言编写程序.ppt

62页
  • 卖家[上传人]:cl****1
  • 文档编号:586273568
  • 上传时间:2024-09-04
  • 文档格式:PPT
  • 文档大小:463.50KB
  • / 62 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Chap 2 用用C语言编写程序语言编写程序 2.1 在屏幕上显示在屏幕上显示 Hello World!2.2 求华氏温度求华氏温度 100°F 对应的摄氏温度对应的摄氏温度2.3 计算分段函数计算分段函数2.4 输出华氏输出华氏—摄氏温度转换表摄氏温度转换表2.5 生成乘方表与阶乘表生成乘方表与阶乘表 本章要点本章要点n怎样编写程序,在屏幕上显示一些信息?怎样编写程序,在屏幕上显示一些信息?n怎样编写程序,实现简单的数据处理,例如怎样编写程序,实现简单的数据处理,例如将华氏温度转换为摄氏温度?将华氏温度转换为摄氏温度?n怎样使用怎样使用 if 语句计算分段函数?语句计算分段函数?n怎样用怎样用 for 语句求语句求 1+2+……+100??n如何定义和调用函数生成一张乘方表?如何定义和调用函数生成一张乘方表? 2.1 在屏幕上显示在屏幕上显示Hello World! 例例2-1 在屏幕上显示一个短句在屏幕上显示一个短句:Hello World! 2.1 在屏幕上显示在屏幕上显示Hello World!/* 显示显示“Hello World!〞〞 */ 注释文本注释文本 # include int main(void) 主函数主函数{ printf(“Hello World! \n〞〞); 语句结束语句结束 return 0;} 输出函数输出函数 换行符换行符1.任何程序都有主函数任何程序都有主函数2.程序由假设干语句组程序由假设干语句组成成3.语句由;结束语句由;结束 2.1 在屏幕上显示一些信息在屏幕上显示一些信息例例2-2 在屏幕上显示在屏幕上显示:Programming is fun!And Programming in C is even more fun!# include 编译预处理命令编译预处理命令int main(void){ printf("Programming is fun! \n"); printf("And Programming in C is even more fun! \n"); return 0;} 2.2 求华氏温度求华氏温度 100°F 对应的摄对应的摄氏温度氏温度 摄氏温度摄氏温度 C=(5/9)(F-32)2.2.1 程序解析程序解析2.2.2 常量、变量和数据类型常量、变量和数据类型2.2.3 算术运算和赋值运算算术运算和赋值运算2.2.4 格式化输出函数格式化输出函数printf 2.2.1 程序解析程序解析例例2-3 求华氏温度求华氏温度 100°F 对应的摄氏温度。

      对应的摄氏温度摄氏温度摄氏温度 C=5*(F-32)/9 #include int main(void){ int celsius, fahr; 变量定义变量定义 fahr = 100; 变量使用变量使用 celsius = 5 * (fahr - 32) / 9; printf("fahr = %d, celsius = %d\n", fahr, celsius);输出结果输出结果 return 0;}输出输出: :fahr =100, celsius = 37 2.2.2 常量、变量和数据类型常量、变量和数据类型int celsius, fahr; celsius = 5 * (fahr - 32) / 9;数据数据常量:在程序运行过程中,其值不能被改变常量:在程序运行过程中,其值不能被改变 变量:在程序运行过程中,其值可以被改变变量:在程序运行过程中,其值可以被改变 数据类型数据类型常量:常量:5 和和 9是整型常量〔整数〕是整型常量〔整数〕变量:在定义时指定变量:在定义时指定 变量的定义变量的定义变量定义的一般形式:变量定义的一般形式:类型名类型名 变量名表;变量名表;例如:例如:int celsius, fahr; 定义整型变量定义整型变量float x; 定义单精度浮点型变量定义单精度浮点型变量double area, length; 定义双精度浮点型变量定义双精度浮点型变量double型数据比型数据比float精度高,取值范围大精度高,取值范围大 变量名:小写字母;见名知义变量名:小写字母;见名知义 变量的定义变量的定义n定义变量时要指定变量名和数据类型定义变量时要指定变量名和数据类型类型名类型名 变量名表;变量名表;int celsius, fahr; float x;double area, length;n变量名代表内存中的一个存储单元变量名代表内存中的一个存储单元存放该变量的值存放该变量的值n该存储单元的大小由变量的数据类型决定该存储单元的大小由变量的数据类型决定nC语言中的变量代表保存数据的存储单元语言中的变量代表保存数据的存储单元n数学中的变量代表未知数数学中的变量代表未知数 x = x+1 变量的定义与使用变量的定义与使用变量必须先变量必须先定义定义,后,后使用使用。

      include int main(void){ int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf("fahr = %d, celsius = %d\n", fahr, celsius); return 0;}一个变量名只能定义一次一个变量名只能定义一次变量一般都定义在程序的头上变量一般都定义在程序的头上不能定义在程序的中间或后面不能定义在程序的中间或后面应该先赋值,后引用应该先赋值,后引用 2.2.3 算术运算和赋值运算算术运算和赋值运算fahr = 100; celsius = 5 * (fahr - 32) / 9; 1、算术运算、算术运算双目算术运算符:双目算术运算符:+ - * / %算术表达式:用算术运算符将运算对象连接起来算术表达式:用算术运算符将运算对象连接起来的符合的符合C语言语法规那么的式子语言语法规那么的式子 数学式:数学式:5*(F-32) /9 C表达式:表达式:5 * (fahr - 32) / 9 或者:或者:数学式:数学式:s(s-a)(s-b)(s-c)C表达式:表达式: 算术运算算术运算¨双目算术运算符:双目算术运算符:+ - * / %¨算术表达式:用算术运算符将运算对象连接起算术表达式:用算术运算符将运算对象连接起来的符合来的符合C语言语法规那么的式子语言语法规那么的式子 ¨注意注意¨/ 整数除整数,得整数整数除整数,得整数¨如:如:1/2 == 0,,9/4 == 2 ¨??5 * (fahr - 32) / 9 和和 5 / 9 * (fahr - 32) 等价吗等价吗¨% 针对整型数据针对整型数据¨如:如: 5%%6==5,,9%%4==1,,100%%4==0¨双目运算符两侧操作数的类型要相同双目运算符两侧操作数的类型要相同 赋值运算赋值运算n赋值运算符赋值运算符 =n赋值表达式:用赋值表达式:用 = 将一个将一个变量变量和一个和一个表达表达式式连接起来的式子连接起来的式子 变量变量 == 表达式表达式例如:例如:fahr = 100; celsius = 5 * (fahr - 32) / 9; ¨计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值¨将赋值运算符右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量=的左边必须是一个变量=的左边必须是一个变量 2.2.4 格式化输出函数格式化输出函数printf数据输出:格式化输出函数数据输出:格式化输出函数 printf #include printf("Hello World! \n");printf("fahr = %d, celsius = %d\n", fahr, celsius);printf(格式控制字符串格式控制字符串, 输出参数输出参数1, … , 输出参数输出参数n);用双引号括起来,表示输出的格式要输出的数据 printf-格式控制字符串-格式控制字符串printf("Hello World! \n"); printf("fahr = %d, celsius = %d\n", fahr, celsius);printf("Hi\n", fahr);格式控制字符串格式控制字符串::¨普通字符:原样输出普通字符:原样输出¨格式控制说明格式控制说明:按指定的格式输出数据按指定的格式输出数据,%…与数据类型有关与数据类型有关nint型型 ::%dnfloat double型:型:%fprintf("fahr = %d, celsius = %d\n", fahr, celsius);输出输出: :fahr =100, celsius = 37 2.3 计算分段函数计算分段函数 2.3.1 程序解析程序解析2.3.2 关系运算关系运算2.3.3 if-else语句语句2.3.4 格式化输入函数格式化输入函数scanf2.3.5 常用数学库函数常用数学库函数 2.3.1 程序解析程序解析例例2-4 分段计算水费分段计算水费输入用户的月用水量输入用户的月用水量x〔吨〕,计算并输出该用户应支〔吨〕,计算并输出该用户应支付的水费付的水费y〔元〕〔保存〔元〕〔保存2位小数〕位小数〕 要解决的问题:要解决的问题:输入输入计算分段函数计算分段函数输出,并保存输出,并保存2位小数位小数 2.3.1 程序解析-求分段函数程序解析-求分段函数 #include int main(void){ double x, y; printf("Enter x (x>=0):\n"); /* 输入提示输入提示 */ scanf("%lf", &x); /* 调用调用scanf函数输入数据函数输入数据 */ if(x <= 15) /* if – else语句语句 */ y = 4 * x / 3; else y = 2.5 * x - 10.5; printf("f(%f) = %.2f\n", x, y); return 0;}Enter x (x>=0):9.5f(9.500000)=12.67Enter x (x>=0):15f(15.000000)=20.00数据必须输入吗?数据必须输入吗?Enter x (x>=0):21.3f(21.300000)=42.75 2.3.2 关系运算关系运算x <= 15比较比较 x 和和 15 的大小的大小比较的结果:真比较的结果:真 假假当当 x 取值取值9.5时,时, x <= 15的结果是:?的结果是:?当当 x 取值取值21.3时,时, x <= 15的结果是:?的结果是:? 关系运算关系运算 — 比较运算,比较两个操作数比较运算,比较两个操作数关系运算符关系运算符x < y x <= y x == yx > y x >= y x != y关系表达式:用关系运算符将关系表达式:用关系运算符将2个表达式连接起来的式子。

      个表达式连接起来的式子如:如:x <= 1区分区分= 和和== 运用关系表达式运用关系表达式表示比较的数学式表示比较的数学式 C关系表达式关系表达式x≤10x≥10x≠10x = 10x <= 10x >= 10x != 10x == 10用关系表达式描述条件用关系表达式描述条件¨判断判断 x 是否为负数是否为负数x < 0¨判断判断 x 是否不为零是否不为零x != 0 2.3.3 if - else语句语句if (表达式表达式) 语句语句1else 语句语句2if(x <= 15) y = 4 * x / 3; else y = 2.5 * x - 10.5;语句语句1表达式表达式语句语句2真真假假 计算二分段函数计算二分段函数 if (表达式表达式) 语句语句1else 语句语句2if(x != 0) y = 1/x;else y = 0; 源程序源程序#include int main(void){ double x, y; printf("Enter x:\n"); scanf("%lf", &x); if(x != 0) y = 1/x; else y = 0; printf("f(%.2f) = %.1f\n", x, y); return 0;}#include /*例例2-4 */int main(void){ double x, y; printf("Enter x (x>=0):\n"); scanf("%lf", &x); if(x <= 15) y = 4 * x / 3; else y = 2.5 * x - 10.5; printf("f(%f) = %.2f\n", x, y); return 0;} 运行结果运行结果#include int main(void){ double x, y; printf("Enter x:\n"); scanf("%lf", &x); if(x != 0) y = 1/x; else y = 0; printf("f(%.2f) = %.1f\n", x, y); return 0;}input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0 软件测试的根本思想软件测试的根本思想 软件测试软件测试精心设计一批精心设计一批测试用例测试用例 [输入数据,预期输出结果输入数据,预期输出结果] ,然后分,然后分别用这些测试用例运行程序,看程序的实际运行结果与预别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。

      期输出结果是否一致input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(x != 0) y = 1/x;else y = 0;if(x <= 15) y = 4 * x / 3;else y = 2.5 * x - 10.5;Enter x (x>=0):9.5f(9.500000)=12.67Enter x (x>=0):15f(15.000000)=20.00Enter x (x>=0):21.3f(21.300000)=42.75 2.3.4 格式化输入函数格式化输入函数scanf数据输入:格式化输入函数数据输入:格式化输入函数 scanf #include scanf("%lf", &x);scanf(格式控制字符串格式控制字符串, 输入参数输入参数1, … , 输入参数输入参数n);用双引号括起来,表示输入的格式用双引号括起来,表示输入的格式变量地址变量地址 scanf-格式控制字符串-格式控制字符串格式控制字符串格式控制字符串::¨格式控制说明格式控制说明: 按指定的格式输入数据按指定的格式输入数据, %…与数据类型有关与数据类型有关nint型型 ::%dnfloat型:型:%fndouble型:型:%lf¨普通字符:原样输入普通字符:原样输入例如:例如:scanf("%lf", &x);输入输入: : 9.5scanf("x=%lf", &x);输入输入: x=9.5尽量不要出现普通字符尽量不要出现普通字符 改进例改进例2-3的程序的程序例例2-3 求华氏温度求华氏温度 100°F 对应的摄氏温度。

      对应的摄氏温度摄氏温度摄氏温度 C=5*(F-32)/9 #include int main(void){ int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf("fahr = %d, celsius = %d\n", fahr, celsius); return 0;}scanf("%d", &fahr);printf(“Enter fahr: \n");Enter fahr:100fahr =100, celsius = 37 2.3.5 常用数学库函数常用数学库函数n库函数库函数nC语言处理系统提供事先编好的函数,供用户语言处理系统提供事先编好的函数,供用户在编程时调用在编程时调用scanf(), printf(), exp()n在相应的系统文件〔头文件〕中定义一些必在相应的系统文件〔头文件〕中定义一些必需的信息需的信息n#include命令命令n用户调用库函数时,将相应的头文件包含到用户调用库函数时,将相应的头文件包含到源程序中源程序中。

      n例如例如n调用调用scanf, printf,需要,需要 #include n调用调用sqrt,需要,需要 #include 常用数学库函数常用数学库函数n平方根函数平方根函数 sqrt(x) n绝对值函数绝对值函数 fabs(x)nfabs(-3.56) 的值为的值为3.56n幂函数幂函数 pow(x, n) ::xnnpow(1.1, 2) 的值为的值为1.21〔即〔即1.12〕〕n指数函数指数函数 exp(x)::exnexp(2.3) 的值为的值为e2.3n以以e为底的对数函数为底的对数函数 log(x)::ln xnlog(123.45) 的值为的值为4.815836n以以10为底的对数函数为底的对数函数 log10(x)::log10xnlog10(123.45) 的值为的值为2.091491 例例2-5 计算存款的本息计算存款的本息输入存款金额输入存款金额 money、存期、存期 year 和年利率和年利率 rate,根据公式计算存款到期时的本息合计,根据公式计算存款到期时的本息合计sum〔税前〕,输出时保存〔税前〕,输出时保存2位小数。

      位小数sum = money ( 1 + rate)yearsum = money * pow((1 + rate), year) 例例2-5 程序程序# include # include int main(void){ int money, year; double rate, sum; printf(“Enter money:"); scanf("%d", &money); printf(“Enter year: "); scanf("%d", &year); printf(“Enter rate:"); scanf("%lf", &rate); sum = money * pow((1 + rate), year); printf("sum = %.2f", sum); return 0;}Enter money: 1000Enter year: 3Enter rate: 0.025sum = 1076.89scanf("%d%d%lf", &money, &year, &rate); 调用调用scanf函数输入多个数据函数输入多个数据scanf("%d%d%lf", &money, &year, &rate); 输入:输入:1000 3 0.025nscanf需要多个输入参数和多个格式控制说明需要多个输入参数和多个格式控制说明输入参数的类型、个数和位置要与格式控制说明一一输入参数的类型、个数和位置要与格式控制说明一一对应对应 ? scanf("%d%lf%d ", &money, &year, &rate);n程序运行时,输入的多个数据之间必须有间隔。

      程序运行时,输入的多个数据之间必须有间隔scanf("%d%lf%d ", &money, &rate , &year);如何输入?如何输入?输入参数、格式控制说明、输入数据输入参数、格式控制说明、输入数据 2.4 输出华氏-摄氏温度转换表输出华氏-摄氏温度转换表2.4.1 程序解析程序解析2.4.2 for语句语句2.4.3 指定次数的循环程序设计指定次数的循环程序设计 2.4.1 程序解析程序解析例例2-6输输入入2个个整整数数lower和和 upper,,输输出出一一张张华华氏氏--摄摄氏氏温温度度转转换换表表,,华华氏氏温温度度的的取取值值范范围是围是[lower, upper],每次增加,每次增加1°F fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 2.4.1 程序解析程序解析-温度转换表温度转换表#include int main(void){ int fahr, lower, upper; double celsius; printf("Enter lower:"); scanf("%d", &lower); printf("Enter upper:"); scanf("%d", &upper); printf("fahr celsius\n");// 温度重复转换:华氏温度从温度重复转换:华氏温度从lower开始,到开始,到upper结束,每次增加结束,每次增加1°F for (fahr = lower; fahr <= upper; fahr ++) { celsius = (5.0 / 9.0) * (fahr - 32); printf("%d %6.1f\n", fahr, celsius); } return 0;} fahr = fahr+1Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 例例2-6中中for语句的流程语句的流程for (fahr = lower; fahr <= upper; fahr ++) { celsius = (5.0 / 9.0) * (fahr - 32); printf("%d %6.1f\n", fahr, celsius); }fahr = fahr+2输出?输出?Enter lower: 30Enter upper: 35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 for(表达式表达式1;;表达式表达式2;;表达式表达式3) 循环体语句循环体语句实现实现C语句的重复执行语句的重复执行2.4.2 for语句-循环语句语句-循环语句3个表达式、循环体语句个表达式、循环体语句!!书写顺序和执行顺序不同书写顺序和执行顺序不同!!表达式表达式1只执行一次只执行一次 循循环环(控控制制)变变量量::for语语句句中中,,通通过过改改变变或或判判断断某某个个变量的值来控制循环的执行变量的值来控制循环的执行for (fahr = lower; fahr <= upper; fahr ++) { celsius = (5.0 / 9.0) * (fahr - 32.0); printf("%d %6.1f\n", fahr, celsius); }for语句中的循环变量语句中的循环变量赋初值赋初值判断其值判断其值改变其值改变其值 for (fahr = lower; fahr <= upper; fahr ++) { celsius = (5.0 / 9.0) * (fahr - 32.0); printf("%d %6.1f\n", fahr, celsius); }表达式表达式1:给循环变量赋初值,指定循环的起点。

      给循环变量赋初值,指定循环的起点fahr = lower表达式表达式2:给出循环的条件,判断循环是否到达终点?:给出循环的条件,判断循环是否到达终点?fahr <= upper表表达达式式3::设设置置循循环环的的步步长长,,改改变变循循环环变变量量的的值值,,从从而而可可改改变变表达式表达式2的真假性的真假性fahr++循环体语句:被反复执行的语句,一条语句循环体语句:被反复执行的语句,一条语句for语句的说明语句的说明 for (fahr = lower; fahr <= upper; fahr ++) { celsius = (5.0 / 9.0) * (fahr - 32.0); printf("%d %6.1f\n", fahr, celsius); }for (fahr = lower ; fahr <= upper; fahr = fahr + 1) celsius = (5.0 / 9.0) * (fahr - 32.0); printf("%d %6.1f\n", fahr, celsius); 复合语句复合语句{ }和空语句和空语句 ;for (fahr = lower ; fahr <= upper; fahr = fahr + 1); celsius = (5.0 / 9.0) * (fahr - 32.0); printf("%d %6.1f\n", fahr, celsius); !不要在!不要在for语句中随意加分号语句中随意加分号 求求 1+2+……+100抽取具有共性的算式:抽取具有共性的算式:sum = sum + i sum初值为初值为0,该算式重复,该算式重复100次,次,i从从1变到变到100设设i为循环变量,那么:为循环变量,那么:指定循环起点的表达式指定循环起点的表达式1::i = 1给出循环条件的表达式给出循环条件的表达式2::i <= 100设置循环步长的表达式设置循环步长的表达式3::i++循环体语句:循环体语句:sum = sum + i;for(i=1; i<=100; i++)sum =sum+i;2.4.3 指定次数的循环程序设计指定次数的循环程序设计 /* 计算计算1 + 2 + 3 + …… + 100 */#include int main(void){ int i, sum; sum = 0; /* 置累加和置累加和sum的初值为的初值为0 */ for ( i = 1; i <= 100; i++ ) /* 循环重复循环重复100次次 */ sum = sum + i; /* 反复累加反复累加 */ printf( “sum = %d\n〞〞, sum); /* 输出累加和输出累加和 */ return 0;}源程序源程序 求求 1+2+……+100for(i=1; i<=100; i++){ sum=0; sum=sum+i;}sum=5050 #include int main(void){ int i, sum; sum = 0; for ( i = 1; i <= 100; i++ ) sum = sum + i; printf( “sum = %d\n〞〞, sum); return 0;}求求 1+1/2+1/3+……+ 1/100for(i=1; i<=100; i++) sum=sum+1.0/i;int i;double sum;printf( “sum = %f\n〞〞, sum); 一般包含四个局部:一般包含四个局部:初始化:指定循环起点初始化:指定循环起点给循环变量赋初值,如给循环变量赋初值,如i = 1;进入循环之前,设置相关变量的初值,如进入循环之前,设置相关变量的初值,如sum = 0。

      条件控制:条件控制:只要只要i <= 100,循环就继续,循环就继续工作:指重复执行的语句〔循环体〕工作:指重复执行的语句〔循环体〕一一条条语语句句,,可可以以是是复复合合语语句句或或空空语语句句如如sum = sum + i改变循环变量:在每次循环中改变循环变量的值改变循环变量:在每次循环中改变循环变量的值如如 i++,,以以改改变变循循环环条条件件的的真真假假一一旦旦i > 100,,循循环环结束指定次数的循环程序设计指定次数的循环程序设计 输入一个正整数输入一个正整数n,求前,求前n项和,即循环项和,即循环n次次#include int main(void){ int i, sum; sum = 0; for ( i = 1; i <= 100; i++ ) sum = sum + i; printf( “sum = %d\n〞〞, sum); return 0;}例例2-7 求求 1+2+3+……+n for(i=1; i<=n; i++) sum=sum+i;printf(“Enter n:"); scanf("%d", &n); Enter n: 100Sum = 5050 #include int main(void){ int i, sum; printf(“Enter n: "); scanf("%d", &n); sum = 0; for ( i = 1; i <= n; i++ ) sum = sum + i; printf( “sum = %d\n〞〞 , sum); return 0;}求求1+1/2+1/3+……+ 1/n #include int main(void){ int i; double sum; printf(“Enter n: "); scanf("%d", &n); sum = 0; for ( i = 1; i <= n; i++ ) sum = sum + 1.0/i; printf( “sum = %f\n〞〞, sum); return 0;} 求前求前n项和,即循环项和,即循环n次,每次累加次,每次累加1项。

      项for (i = 1; i <= n ; i++) sum = sum + item (第第i项项)item = 1.0 / (2 * i - 1)求求 1+1/3+1/5+… 的前的前n项和项和 #include int main(void){ int i, n; double item, sum; printf(“Enter n: "); scanf ("%d", &n);sum = 0 ; for ( i = 1; i <= n; i++ ) { item = 1.0 / (2 * i - 1); /* 计算第计算第i项的值项的值 */ sum = sum + item ; /* 累加第累加第i项的值项的值 */ }printf ( "sum = %f\n", sum); return 0;}源程序源程序 求求 1+1/3+1/5+… 求前求前n项和,即循环项和,即循环n次,每次累加次,每次累加1项for (i = 1; i <= n ; i++) sum = sum + item (第第i项项)item = flag * 1.0 / denominator denominator = denominator + 2flag = -flag例例2-8 求求 1-1/3+1/5-… 的前的前n项和项和item = flag*1.0/(2 * i - 1) #include int main(void){ int denominator, flag, i, n; double item, sum; printf(“Enter n: "); scanf ("%d", &n);flag=1; denominator =1;sum = 0 ; for ( i = 1; i <= n; i++ ) { item = flag * 1.0/ denominator; /* 计算第计算第i项的值项的值 */ sum = sum + item ; /* 累加第累加第i项的值项的值 */ flag = -flag; /* 准备下一次循环准备下一次循环 */ denominator = denominator +2; }printf ( "sum = %f\n", sum); return 0;}例例2-8 源程序源程序 n! = 1*2*…*nfor (i = 1; i <= n ; i++) product = product * item (第第i项项)item=i例例2-9 求求n!product = ? #include int main(void){ int i, n; double product; printf("input n: \n"); scanf ("%d", &n) ; product=1; /* 置阶乘置阶乘product的初值为的初值为1 */ for ( i = 1; i <= n; i++ ) /* 循环重复循环重复n次,计算次,计算n! */ product = product * i ; printf ( "product = %.0f\n", product ); return 0;}例例2-9 源程序源程序 输入实数输入实数x和正整数和正整数n,,计算计算xn = x * x * … * xfor (i = 1; i <= n ; i++) power = power * item (第第i项项)item=?求求 xn #include int main(void){ int i, n; double x, power ; printf(“Enter x, n: \n"); scanf ("%lf%d", &x, &n) ; power = 1; /* 置置power的初值为的初值为1 */ for ( i = 1; i <= n; i++ ) /* 循环重复循环重复n次,计算次,计算x的的n次幂次幂 */ power = power * x; printf( "%0.f\n", power);}源程序源程序 求求 xn 2.5 生成乘方表和阶乘表生成乘方表和阶乘表 例例2-10 生成乘方表生成乘方表输输入入一一个个正正整整数数n,,生生成成一一张张2的的乘乘方方表表,,输输出出20到到2n的值,可以调用幂函数计算的值,可以调用幂函数计算2的乘方。

      的乘方for (i = 0; i <= n ; i++){ power = pow(2, i); /*调用幂函数调用幂函数pow(2,i)计算计算2的的i次方次方*/ 输出输出power的值的值;} 源程序:生成乘方表源程序:生成乘方表#include #include int main(void){ int i, n; double power; printf("Enter n:"); scanf("%d", &n); for (i = 0; i <= n ; i++){ power = pow(2, i); /* 调用幂函数调用幂函数pow(2,i)计算计算2的的i次方次方 */ printf("pow(2,%d)= %.0f\n", i, power); } return 0;}Enter n: 4pow(2,0)= 1pow(2,1)= 2pow(2,2)= 4pow(2,3)= 8pow(2,4)= 16 例例2-11 生成阶乘表生成阶乘表输输入入一一个个正正整整数数n,,生生成成一一张张阶阶乘乘表表,,输输出出0!!到到n!!的的值值。

      要要求求定定义义和和调调用用函函数数fact(n)计计算算n!,函数类型是,函数类型是double for (i = 0; i <= n ; i++){ power = pow(2, i); /*调用幂函数调用幂函数pow(2,i)计算计算2的的i次方次方*/ 输出输出power的值的值;}for (i = 0; i <= n ; i++){ product = fact(i); /* 调用自定义函数调用自定义函数fact(i)计算计算i! */ 输出输出product的值的值;} 源程序:生成阶乘表源程序:生成阶乘表#include double fact(int n); /* 自定义函数的声明自定义函数的声明 */int main(void){ int i, n; double result; printf("Enter n:"); scanf("%d", &n); for (i = 0; i <= n ; i++){ result = fact(i); /* 调用自定义函数调用自定义函数fact(i)计算计算i! */ printf("%d!=%.0f\n", i, result); } return 0;}Enter n: 30!=11!=12!=23!=6double fact(int n) /* 函数首部函数首部 */{ int i; double product; product = 1; for (i = 1; i <= n; i++) product = product * i; return product; /* 将结果回送主函数将结果回送主函数 */} 函数的概念函数的概念nC语言中有两种类型函数语言中有两种类型函数n标准库函数标准库函数n自定义函数自定义函数 n函数可以做到一次定义、屡次调用函数可以做到一次定义、屡次调用n使用自定义函数的程序框架使用自定义函数的程序框架ndouble fact(int n); /* 声声明明自自定定义义函函数数,,以以分分号号结结束束 */nint main(void)n{ ……n result = fact(i); /* 调调用用自自定定义义函函数数fact(i)计计算算i! */n ……n}n/* 定义求定义求 n! 的函数的函数 */ 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.