程序控制结构教材cijl.pptx
C语言程序设计程序控制结构程序控制结构C语言的语句C语言中语句以语言中语句以分号分号“;”结束,语句分为:结束,语句分为:1.声明语句:在程序编译时处理,在程序运行时不产声明语句:在程序编译时处理,在程序运行时不产生相应的操作。生相应的操作。2.执行语句:在程序运行时向计算机系统发出操作命执行语句:在程序运行时向计算机系统发出操作命令,使计算机执行特定的操作。令,使计算机执行特定的操作。void main()void main()int i;/*int i;/*声明语句声明语句*/*/printf(printf(%dn,(i=1,+i);/*%dn,(i=1,+i);/*执行语句执行语句*/*/C语言的执行语句表达式语句:表达式加分号表达式语句:表达式加分号“;”空语句:仅一个分号空语句:仅一个分号“;”构成的语句构成的语句复合语句:用一对花括号复合语句:用一对花括号括起来的多条语句括起来的多条语句控制语句:控制语句:C语言提供语言提供9种控制语句,见种控制语句,见P62#include#includevoid main()void main()int i;int i;i=abs(-2);/*i=abs(-2);/*表达式语句(赋值语句)表达式语句(赋值语句)空语句空语句*/*/printf(printf(%dn,i);/*%dn,i);/*表达式语句(函数调用语句)表达式语句(函数调用语句)*/*/C语言的执行语句#include#includevoid main()void main()int a,b;int a,b;printf(Please input a,b:n);printf(Please input a,b:n);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);if(ab)/*if(ab)/*控制语句(控制语句(ifif语句)语句)*/*/int t;t=a;a=b;b=t;/*int t;t=a;a=b;b=t;/*复合语句复合语句*/*/printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b);getch();getch();程序控制结构程序的三种基本结构程序的三种基本结构顺序结构:程序执行按照代码书写顺序执行顺序结构:程序执行按照代码书写顺序执行 选择结构:选择结构:循环结构:循环结构:if 语句语句switch语句语句当型循环结构当型循环结构(for(for语句、语句、whilewhile语句语句)直到型循环结构(直到型循环结构(do-whiledo-while语句)语句)顺序结构所所谓谓顺顺序序结结构构程程序序就就是是按按代代码码书书写写顺顺序序,自自上上而而下执行的语句构成的程序段。下执行的语句构成的程序段。一般顺序结构的流程图为:一般顺序结构的流程图为:动作动作1 1动作动作2 2动作动作3 3例:计算两个键盘输入的整数的平均值并输出。例:计算两个键盘输入的整数的平均值并输出。开始开始输入两个整数输入两个整数计算平均值计算平均值定义三个变量定义三个变量输出平均值输出平均值结束结束#include#includemain()main()int a,b;int a,b;float average;float average;printf(Please input a,b:n);printf(Please input a,b:n);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);average=(a+b)/2.0;average=(a+b)/2.0;printf(average=%fn,average);printf(average=%fn,average);getch();getch();选择结构C语言的选择控制语句有两条:语言的选择控制语句有两条:条件选择语句:条件选择语句:if语句语句开关分支语句:开关分支语句:switch语句语句一、一、if语句的三种形式语句的三种形式1、if(表达式)(表达式)语句语句表达式表达式真真(非非0)0)语句序列语句序列假假(0)(0)例:输入一个字母,以小写形式输出该字母。例:输入一个字母,以小写形式输出该字母。#include#includemain()main()char c;char c;printf(Input a letter:);printf(Input a letter:);c=getchar();c=getchar();if(c=A&c=A&c=Z)c=c+32;c=c+32;printf(%cn,c);printf(%cn,c);getch();getch();开始开始输入一个字母输入一个字母定义一个字符变量定义一个字符变量输出字母输出字母结束结束大写字母大写字母?转换为小写字母转换为小写字母真真(非非0)假假(0)选择结构一、一、if语句的三种形式语句的三种形式2、if(表达式)(表达式)语句语句1 else 语句语句2 表达式表达式真真(非非0)0)语句序列语句序列2 2假假(0)(0)语句序列语句序列1 1例:输出实数例:输出实数x,y中的较大者。中的较大者。#include#includemain()main()float x,y;float x,y;printf(Input x,y:);printf(Input x,y:);scanf(%f,%f,&x,&y);scanf(%f,%f,&x,&y);if(xy)if(xy)printf(%fn,x);printf(%fn,x);else else printf(%fn,y);printf(%fn,y);getch();getch();开始开始输入两个实数输入两个实数定义两个实型变量定义两个实型变量输出输出x结束结束xy?输出输出y真真(非非0)假假(0)选择结构一、一、if语句的三种形式语句的三种形式3、if(表达式(表达式1)语句语句1 else if(表达式(表达式2)语句语句2 .else if(表达式(表达式n)语句语句n else 语句语句n+1表达式表达式1 1真真(非非0)0)语句序列语句序列n n假假(0)(0)语句序列语句序列1 1表达式表达式2 2语句序列语句序列2 2真真(非非0)0)表达式表达式n n假假(0)(0)真真(非非0)0)语句序列语句序列n+1n+1假假(0)(0)例:输入百分制成绩,要求输出相应的五级制成绩。例:输入百分制成绩,要求输出相应的五级制成绩。百分制成绩与五级制成绩之间的转换标准为:百分制成绩与五级制成绩之间的转换标准为:9090分以上为分以上为“A”“A”;80898089分为分为“B”“B”;70797079分为分为“C”“C”;60696069分为分为“D”“D”;6060分以下为分以下为“E”“E”。#include#includemain()main()int score;int score;printf(Please input the printf(Please input the score(0100):);score(0100):);scanf(%d,&score);scanf(%d,&score);if(score=90)if(score=90)printf(An);printf(An);else if(score=80)else if(score=80)printf(Bn);printf(Bn);else if(score=70)else if(score=70)printf(Cn);printf(Cn);else if(score=60)else if(score=60)printf(Dn);printf(Dn);else else printf(En);printf(En);getch();getch();例:在一对例:在一对/*/之间补充程序,使对其输入的一个月工之间补充程序,使对其输入的一个月工资数额,求应交税款。设应交税款的计算公式如下:资数额,求应交税款。设应交税款的计算公式如下:如:如:输入输入:4500 :4500 输出:输出:f(4500.00)=30.00f(4500.00)=30.00输入输入:6500 :6500 输出:输出:f(6500.00)=195.00f(6500.00)=195.00输入输入:9500 :9500 输出:输出:f(9500.00)=645.00f(9500.00)=645.00#include#includevoid main()void main()float x;double y;float x;double y;printf(Please input a number:n);printf(Please input a number:n);scanf(%f,&x);scanf(%f,&x);/*/*/*/*/printf(f(%.2f)=%.2fn,x,y);printf(f(%.2f)=%.2fn,x,y);getch();getch();if(x=3500)y=0;else if(x=5000)y=(x-3500)*0.03;else if(x=8000)y=(x-3500)*0.1-105;else if(x=12500)y=(x-3500)*0.2-555;if语句的嵌套ifif语语句句的的嵌嵌套套:一一个个ifif语语句句的的ifif分分支支、else else ifif分分支支或或elseelse分支中又完整地包含了另一个分支中又完整地包含了另一个ifif语句语句。ifif(表达式(表达式1 1)if if(表达式(表达式2 2)语句语句1 1 else else 语句语句2 2elseelse if if(表达式(表达式3 3)语句语句3 3 else else 语句语句4 4书写代码时,书写代码时,写出层次关写出层次关系系例:有如下一函数,请判断以下哪个程序是正确的?例:有如下一函数,请判断以下哪个程序是正确的?程序程序1 1:main()main()int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);if(x0)y=-1;if(x=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=0;else y=0;else y=-1;else y=-1;printf(x=%d,y=%d,x,y);printf(x=%d,y=%d,x,y);例:有如下一函数,请判断以下哪个程序是正确的?例:有如下一函数,请判断以下哪个程序是正确的?程序程序3 3:main()main()int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=-1;y=-1;if(x!=0)if(x!=0)if(x0)y=1;if(x0)y=1;else y=0;else y=0;printf(x=%d,y=%d,x,y);printf(x=%d,y=%d,x,y);y=-1;if(x!=0)if(x0)y=1;else y=0;例:有如下一函数,请判断以下哪个程序是正确的?例:有如下一函数,请判断以下哪个程序是正确的?程序程序4 4:main()main()int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);y=0;y=0;if(x=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=-1;else y=-1;printf(x=%d,y=%d,x,y);printf(x=%d,y=%d,x,y);y=0;if(x=0)if(x0)y=1;else y=-1;例:以下程序的输出结果是?例:以下程序的输出结果是?#include#includemain()main()int a,b,c,x;int a,b,c,x;a=b=c=0;x=35;a=b=c=0;x=35;if(!a)x-;if(!a)x-;else if(b);if(c)x=3;else if(b);if(c)x=3;else x+=4;else x+=4;printf(x=%dn,x);printf(x=%dn,x);x=38x=38 int a=1;switch(a)case 1:a+=1;break;case 2:a+=2;break;default:a+=0;printf(%dn,a);选择结构二、二、switch语句语句switch switch 语句的一般形式语句的一般形式:switch(switch(表达式表达式)case case 常量表达式常量表达式1 1:语句组语句组1 1;break;break;case case 常量表达式常量表达式2:2:语句组语句组2 2;break;break;case case 常量表达式常量表达式n n:语句组语句组n n;break;break;default:default:语句组语句组n+1;n+1;多分支选择结构:根据一个表达式的不同取值来实现对分支多分支选择结构:根据一个表达式的不同取值来实现对分支的选择。的选择。语句组语句组1 1breakbreak计算表达式计算表达式=常量常量1 1有有语句组语句组2 2=常量常量2 2无无breakbreak无无有有语句组语句组n n=常量常量n nbreakbreak有有无无语句组语句组n+1n+1=其它其它#include#includemain()main()char grade;char grade;grade=getchar();grade=getchar();grade=(grade=a&grade=a&grade=z)?grade-32:grade;switch(grade)switch(grade)case A:printf(90100n);break;case A:printf(90100n);break;case B:printf(8089n);break;case B:printf(8089n);break;case C:printf(7079n);break;case C:printf(7079n);break;case D:printf(6069n);break;case D:printf(6069n);break;case E:printf(60n);break;case E:printf(60n);break;default:printf(Errorn);default:printf(Errorn);每个分支的常量每个分支的常量的值必须互不相的值必须互不相同同各个分支允许内各个分支允许内嵌多个语句,而嵌多个语句,而且可以不用且可以不用括括起来起来最后一个分支可最后一个分支可以不加以不加break语语句句#include#includemain()main()char grade;char grade;grade=getchar();grade=getchar();switch(grade)switch(grade)default:printf(Errorn);break;default:printf(Errorn);break;case A:case a:printf(90100n);break;case A:case a:printf(90100n);break;case B:case b:printf(8089n);break;case B:case b:printf(8089n);break;case C:case c:printf(7079n);break;case C:case c:printf(7079n);break;case D:case d:printf(6069n);break;case D:case d:printf(6069n);break;case E:case e:printf(60n);break;case E:case e:printf(60n);break;无论无论default分支分支是否最后出现,是否最后出现,它都是作为最后它都是作为最后一个分支来考虑一个分支来考虑允许多个允许多个case共共用一组执行语句用一组执行语句例:以下程序的输出结果是?例:以下程序的输出结果是?main()main()int x=1,y=0,a=0,b=0;int x=1,y=0,a=0,b=0;switch(x)switch(x)case 1:case 1:switch(y)switch(y)case 0:a+;break;case 0:a+;break;case 1:b+;break;case 1:b+;break;case 2:a+;b+;break;case 2:a+;b+;break;case 3:a+;b+;case 3:a+;b+;printf(a=%d,b=%dn,a,b);printf(a=%d,b=%dn,a,b);a=2,b=1break;break;a=1,b=0例例:运行以下程序段,结果为:(运行以下程序段,结果为:()int t=3;int t=3;switch(t)switch(t)case 1:printf(1);break;case 1:printf(1);break;case 2:printf(2);break;case 2:printf(2);break;case 3:printf(3);break;case 3:printf(3);break;default:printf(Error!);default:printf(Error!);A A)1 B 1 B)2 C2 C)3 D 3 D)Error!Error!D Dint t=49int t=49;A A循环结构循循环环结结构构的的特特点点是是在在给给定定的的条条件件成成立立时时,反反复复执执行行某程序段某程序段,直到条件不成立,直到条件不成立。循环条件:给定的条件循环条件:给定的条件循环体:反复执行的程序段循环体:反复执行的程序段C语言的循环控制语句有三种:语言的循环控制语句有三种:while语句语句do-while语句语句for语句语句循环结构(while)while(循环条件表达式循环条件表达式)循环体循环体真真(非非0)0)假假(0(0)表达式表达式循环体循环体main()main()int n=1,sum=0;int n=1,sum=0;while(n=100)while(n=100)sum+=n;sum+=n;+n;+n;printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);去掉花括号去掉花括号?while(n=100);?循环结构(do-while)do循环体循环体while(循环条件表达式循环条件表达式);真真(非非0)0)假假(0(0)表达式表达式循环体循环体main()main()int n=1,sum=0;int n=1,sum=0;do do sum+=n+;sum+=n+;while(n=100)while(n=100);printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);勿忘分号勿忘分号“;”While与do-while的比较main()main()int sum=0,n;int sum=0,n;scanf(%d,&n);scanf(%d,&n);while(n=10)while(n=10)sum+=n;sum+=n;n+;n+;printf(%dn,sum);printf(%dn,sum);main()main()int sum=0,n;int sum=0,n;scanf(%d,&n);scanf(%d,&n);do do sum+=n;sum+=n;n+;n+;while(n=10);while(n=10);printf(%dn,sum);printf(%dn,sum);输入输入1时,结果相时,结果相同,都是输出同,都是输出55输入输入11时,结果时,结果就不相同了,分就不相同了,分别输出别输出0和和11循环结构(for)for(表达式表达式1;表达式表达式2;表达式表达式3)循环体循环体main()main()int n,sum=0;int n,sum=0;for(n=1;n=100;n+)for(n=1;n=100;n+)sum+=n;sum+=n;printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);真真(非非0)0)假假(0(0)表达式表达式2 2循环体循环体计算表达式计算表达式1 1计算表达式计算表达式3 3表达式表达式1只执行一只执行一次,常用于对循次,常用于对循环变量赋初值环变量赋初值表达式表达式2:循环条:循环条件表达式件表达式表达式表达式3常用于循常用于循环变量的更新,环变量的更新,每次执行完循环每次执行完循环体后执行一次体后执行一次循环结构(for结构的变形)main()main()int n,sum;int n,sum;for(n=1,sum=0;n=100;sum+=n,n+);for(n=1,sum=0;n=100;sum+=n,n+);printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);for(,;表表达达式式2;,)循循环环体体/*表表达达式式1、3用用逗逗号号表表达达式式*/for(;表达式表达式2;表达式表达式3)循环体循环体 /*表达式表达式1缺省缺省*/main()main()int n=1,sum=0;int n=1,sum=0;for(;n=100;n+)for(;n=100;n+)sum+=n;sum+=n;printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);for(;表达式表达式2;)循环体循环体 /*表达式表达式1、3缺省缺省*/main()main()int n=1,sum=0;int n=1,sum=0;for(;n=100;)for(;n100)break;sum+=n+;if(n100)break;printf(n=%d,sum=%dn,n,sum);printf(n=%d,sum=%dn,n,sum);其它程序流程控制(break)breakbreak语句语句:在在switchswitch中退出中退出switchswitch结构;在结构;在循环循环中退出循环。中退出循环。例:将数字例:将数字512表示成两个数的和,这两个数分别为表示成两个数的和,这两个数分别为15和和13的的倍数。倍数。main()main()int i;int i;for(i=1;i+)for(i=1;i+)if(!(512-i*15)%13)break;if(!(512-i*15)%13)break;printf(%d+%d=512n,i*15,512-i*15);printf(%d+%d=512n,i*15,512-i*15);int i;int i;for(i=1;(512-i*15)%13;i+);for(i=1;(512-i*15)%13;i+);printf(%d+%d=512n,i*15,512-i*15);printf(%d+%d=512n,i*15,512-i*15);其它程序流程控制(continue)continuecontinue语句语句:结束本次循环,跳过循环体后面的语句,开始结束本次循环,跳过循环体后面的语句,开始下一轮循环(循环的短路)。下一轮循环(循环的短路)。例:输出例:输出100200之间所有能被之间所有能被7或或9整除的整数。整除的整数。main()main()int i,n=0;int i,n=0;for(i=100;i=200;i+)for(i=100;i=200;i+)if(i%7!=0)&(i%9!=0)continue;if(i%7!=0)&(i%9!=0)continue;printf(%5d,i);printf(%5d,i);n+;if(n%5=0)printf(n);n+;if(n%5=0)printf(n);for(i=100;i=200;i+)for(i=100;i=200;i+)if(i%7=0)|(i%9=0)if(i%7=0)|(i%9=0)printf(%5d,i);printf(%5d,i);n+;n+;if(n%5=0)printf(n);if(n%5=0)printf(n);break语句与continue语句的比较void main()void main()int sum=0,item=0;int sum=0,item=0;while(item5)while(item=6)break;if(sum=6)break;printf(%dn,sum);printf(%dn,sum);输出输出6break结束整个循环结束整个循环void main()void main()int sum=0,item=0;int sum=0,item=0;while(item5)while(item5)item+;item+;if(item=2)continue;if(item=2)continue;sum+=item;sum+=item;printf(%dn,sum);printf(%dn,sum);输出输出13continue结束本次结束本次循环循环例:程序的输出结果是?例:程序的输出结果是?void main()void main()int i,a=0,b=0,c=0,d=0;int i,a=0,b=0,c=0,d=0;for(i=1;i=4;i+)for(i=1;i=4;i+)switch(i)switch(i)case 1:a=1;continue;case 1:a=1;continue;case 2:b=2;case 2:b=2;case 3:c=3;break;case 3:c=3;break;case 4:d=4;case 4:d=4;printf(%d%d%d%dn,a,b,c,d);printf(%d%d%d%dn,a,b,c,d);123012301230123012341234循环的嵌套循环嵌套:一个循环体中又包含循环结构。循环嵌套:一个循环体中又包含循环结构。最常见的循环嵌套为最常见的循环嵌套为for结构嵌套结构嵌套main()main()int i,j;int i,j;for(i=0;i2;i+)/*for(i=0;i2;i+)/*外循环外循环*/*/for(j=0;j2;j+)/*for(j=0;j2;j+)/*内循环内循环*/*/printf(i=%d,j=%dn,i,j);printf(i=%d,j=%dn,i,j);输出结果:输出结果:i=0,j=0i=0,j=0i=0,j=1i=0,j=1i=1,j=0i=1,j=0i=1,j=1i=1,j=1例:打印算术口诀表例:打印算术口诀表main()main()int i,j;int i,j;for(i=1;i=9;i+)for(i=1;i=9;i+)for(j=1;j=i;j+)for(j=1;j=i;j+)printf(%d*%d=%-3d,i,j,i*j);printf(%d*%d=%-3d,i,j,i*j);printf(n);printf(n);1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=94*1=4 4*2=8 4*3=12 4*4=165*1=5 5*2=10 5*3=15 5*4=20 5*5=25例:以下程序是利用例:以下程序是利用穷举法穷举法打印出所有的打印出所有的“水仙花数水仙花数”。所谓。所谓“水仙花数水仙花数”是指一个三位数,其各位数字的立方和等于该数是指一个三位数,其各位数字的立方和等于该数本身。例如本身。例如153153是一个水仙花数,因为是一个水仙花数,因为153=1153=13 3+5+53 3+3+33 3.main()main()int i,j,k,m1,m2;int i,j,k,m1,m2;for(i=1;i=9;i+)for(i=1;i=9;i+)for(j=0;j=9;j+)for(j=0;j=9;j+)for(k=0;k=9;k+)for(k=0;k=9;k+)m1=i*100+j*10+k;m1=i*100+j*10+k;m2=i*i*i+j*j*j+k*k*k;m2=i*i*i+j*j*j+k*k*k;if(m1=m2)printf(%4d,m1);if(m1=m2)printf(%4d,m1);例:求解百马百担问题例:求解百马百担问题:有有100100匹马,驮匹马,驮100100担货,大马驮担货,大马驮3 3担,担,中马驮中马驮2 2担,两匹小马驮担,两匹小马驮1 1担,问大、中、小马数可分别为多少担,问大、中、小马数可分别为多少?有多少种解决方案?有多少种解决方案?void main()void main()int x,y,z,n=0;int x,y,z,n=0;for(x=0;x=100;x+)for(x=0;x=100;x+)for(y=0;y=100;y+)for(y=0;y=100;y+)for(z=0;z=100;z+)for(z=0;z=100;z+)if(x+y+z=100&3*x+2*y+z/2.0=100)if(x+y+z=100&3*x+2*y+z/2.0=100)n+;n+;printf(%d:large:%d,middle:%d,small:%dn,n,x,y,z);printf(%d:large:%d,middle:%d,small:%dn,n,x,y,z);printf(nThere are%d solutions.n,n);printf(nThere are%d solutions.n,n);getch();getch();例:程序的功能是求一堆零件的总数(例:程序的功能是求一堆零件的总数(100100到到200200之间)。如果之间)。如果分成分成4 4个零件一组的若干组,则多个零件一组的若干组,则多2 2个零件;若分成个零件;若分成7 7个零件一个零件一组,则多组,则多3 3个零件;若分成个零件;若分成9 9个零件一组,则多个零件一组,则多5 5个零件。个零件。#include#includevoid main()void main()int i;int i;for(i=100;i=200;i+)for(i=100;i=200;i+)if(i%4=2&i%7=3&i%9=5)if(i%4=2&i%7=3&i%9=5)printf(%dn,i);printf(%dn,i);getch();getch();例:程序的功能是求满足等式例:程序的功能是求满足等式xyz+yzz=520 xyz+yzz=520的的x,y,zx,y,z值(其中值(其中xyzxyz和和yzzyzz分别表示一个三位数)。在一对分别表示一个三位数)。在一对/*/*/之间改错。之间改错。void main()void main()int x,y,z,i,result=520;int x,y,z,i,result=520;for(x=1;x10;x+)for(x=1;x10;x+)for(y=1;y10;y+)for(y=1;y10;y+)/*/for(z=1;z10;z+)/*/*/for(z=1;z10;z+)/*/i=100*x+10*y+z+100*y+10*z+z;i=100*x+10*y+z+100*y+10*z+z;/*/if(i=result)/*/*/if(i=result)/*/printf(x=%d,y=%d,x=%dn,x,y,z);printf(x=%d,y=%d,x=%dn,x,y,z);getch();getch();for(z=0;z10for(z=0;z10;z+);z+)i=resulti=result例:程序的功能是输出用例:程序的功能是输出用1 1元、元、2 2元和元和5 5元的纸币组成元的纸币组成1010元钱的元钱的所有组合。在一对所有组合。在一对/*/*/之间补充程序。之间补充程序。void main()void main()int i,j,k;int i,j,k;int num=0;int num=0;printf(No.1 yuan 2 yuan 5 yuann);printf(No.1 yuan 2 yuan 5 yuann);for(k=0;k=2;k+)for(k=0;k=2;k+)for(j=0;j=5;j+)for(j=0;j=5;j+)for(i=0;/*/*/;i+)for(i=0;/*/*/;i+)if(/*/*/)if(/*/*/)num+;num+;printf(%9d%9d%9d%9dn,num,i,j,k);printf(%9d%9d%9d%9dn,num,i,j,k);i=10i=10k*5+j*2+i=k*5+j*2+i=1010例:在一对例:在一对/*/*/之间补充程序,使其完成圆周率的计算。之间补充程序,使其完成圆周率的计算。#include#includevoid main()void main()int i=1,n;double pi=0.0;int i=1,n;double pi=0.0;printf(Input an integer:);printf(Input an integer:);scanf(%d,&n);scanf(%d,&n);while(i=n)while(i=n)pi+=/*/*/;pi+=/*/*/;i+;i+;pi=sqrt(pi*6);pi=sqrt(pi*6);printf(pi=%lfn,pi);printf(pi=%lfn,pi);1.0/(i*i)1.0/(i*i)例:在一对例:在一对/*/*/之间补充程序,使其完成圆周率的计算。之间补充程序,使其完成圆周率的计算。#include#includevoid main()void main()long int s=1,n=1;double t=1.0,pi=0;long int s=1,n=1;double t=1.0,pi=0;do do pi+=t;pi+=t;s=-s;s=-s;n+=2;n+=2;t=/*/*/;t=/*/*/;while(fabs(t)1e-6);while(fabs(t)1e-6);pi*=4;pi*=4;printf(pi=%10.6fn,pi);printf(pi=%10.6fn,pi);1.0*s/n1.0*s/n例:在一对例:在一对/*/*/之间补充程序,使其完成以下多项式的计算。之间补充程序,使其完成以下多项式的计算。main()main()float sum,term,x;float sum,term,x;int n,k,sign;int n,k,sign;printf(Input x,n:n);printf(Input x,n:n);scanf(%f,%d,&x,&n);scanf(%f,%d,&x,&n);sum=x;term=x;sign=1;sum=x;term=x;sign=1;for(k=2;k=n;k+)for(k=2;k=n;k+)term*=/*/*/;term*=/*/*/;sign=-sign;sign=-sign;sum+=sign*term;sum+=sign*term;printf(sum=%fn,sum);printf(sum=%fn,sum);x*x/(2*k-2)/(2*k-1)x*x/(2*k-2)/(2*k-1)例:在一对例:在一对/*/*/之间补充程序,使其完成之间补充程序,使其完成n!n!的计算。的计算。main()main()int i,n;int i,n;long s=1;long s=1;printf(Input n:);printf(Input n:);scanf(%d,&n);scanf(%d,&n