谭浩强C语言程序设计第四版例题与课后题答案_第1页
谭浩强C语言程序设计第四版例题与课后题答案_第2页
谭浩强C语言程序设计第四版例题与课后题答案_第3页
谭浩强C语言程序设计第四版例题与课后题答案_第4页
谭浩强C语言程序设计第四版例题与课后题答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章选择程序结构设计4.1选择结构和条件判断例子4.1求二元一次方程的根#include<stdio.h>#include<math.h>int main()double a,b,c,disc,x1,x2,p,q;scanf("%lf%lf%lf",&a,&b,&c);/double &a表示a在内存中的地址disc=b*b-4*a*c;if(disc<0)printf("This equation hasnt real rootsn");elsep=-b/(2.0*a);q=sqrt(di

2、sc)/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2fnx2=%7.2fn",x1,x2);/指定数据占7列小数点占2列return 0;4.2用if语句实现选择结构#include<stdio.h>int main()int a,b;printf("please input a,b:");scanf("%d%d",&a,&b); /输入的形式应该注意if(a>b)printf("max=%d",a);elseprintf("max=%d&q

3、uot;,b);return 0;/ 输入两个数判断较大者#include<stdio.h>int main()int a,b;printf("please input a,b:");scanf("%d%d",&a,&b); /输入的形式应该注意if(a>b)printf("max=%d",a);elseprintf("max=%d",b);return 0;*/输入两个数由小到大排列#include<stdio.h>int main()int a,b,t;printf

4、("please input a,b:");scanf("%d%d",&a,&b); /输入的形式应该注意1,2if(a>b)t=a;a=b;b=t;printf("%d%d",a,b);elseprintf("%d%d",a,b);return 0;/*#include<stdio.h>int main()int a,b,t;printf("please input a,b:");scanf("%d%d",&a,&b); /

5、输入的形式应该注意1,2if(a>b)t=a;a=b;b=t;printf("%d%d",a,b);return 0;*/4.3输入3个数比较大小a>b交换aba>c比较b>c比较思想运算符的优先级高->低算术运算符关系运算符赋值运算符多看一些例子:如c>a+b <=> c>(a+b)c>b=c <=> (c>b)=ca=b<c <=> a=(b<c)a=b>c <=> a=(b>c)4.3.2关系表达式真假4.4逻辑运算符和逻辑表达式优先级(高-&

6、gt;低)!(非)算术运算符关系运算符&&和|赋值运算符例如:(a>b)&&(x>y) <=> a>b && x>y(a=b)|(x=y) <=> a=b|x=y注意:关系运算符<<=>>=以上(以下)的优先级相同但是上面大于下面的=!=4.5条件运算符和条件表达式if(a>b)max=a;elsemax=b;<=>max=(a>b)?a:b;例4.4/输入字符如果大写转换小写,小写不变#include<stdio.h>int main()

7、char ch;scanf("%c",&ch);ch=(ch>A&&ch<=Z)?(ch+32):ch;printf("%cn",ch);return 0;4.6选择结构的嵌套4.7用switch语句实现多分支选择结构注意:关键字break别写错了,记得考试的时候就忘记了。#include<stdio.h>int main()void action1(int,int),action2(int,int);char ch;int a=15,b=23;ch=getchar();switch(ch)casea:ac

8、tion1(a,b);break;/caseA:action1(a,b);break;caseA:action1(a,b);break;caseb:/caseB:action2(a,b);break;caseB:action2(a,b);break;default:putchar(a);return 0;void action1(int x,int y)printf("x+y=%dn",x+y);void action2(int x,int y)printf("x*y=%dn",x*y);4.8选择结构程序综合举例例子4.8判断闰年#include<

9、;stdio.h>int main()int year,leap;printf("enter year:");scanf("%d",&year);if(year%4=0&&year%100!=0)|(year%400=0)leap=1;elseleap=0;if(leap)printf("闰年");elseprintf("平年");return 0;4.9求 a*x*x+b*x+c=0方程的解(1)a=0不是二元一次方程(2)b*b-4*a*c=0有两个相等的实根(3)b*b-4*a*

10、c>0有两个不等的实根(4)b*b-4*a*c<0有两个共轭复根。应当以p+q*i和p-q*i的形式输出复根。其中p=-b/2a,q=(sqrt(b*b-4*a*c)/(2a)#include<stdio.h>#include<math.h>int main()double a,b,c,disc,x1,x2,realpart,imagpart;scanf("%lf,%lf,%lf",&a,&b,&c);printf("The equation");if(fabs(a)<=1e-6)prin

11、tf("is not a quadraticn");elsedisc=b*b-4*a*c;if(fabs(disc)<=1e-6)printf("has two equal roots:%8.4fn",-b/(2*a);elseif(disc>1e-6)x1=(-b+sqrt(disc)/2*a;x2=(-b-sqrt(disc)/2*a;printf("has distinct real roots:%8.4f and %8.4fn",x1,x2);elserealpart=-b/(2*a);imagpart=sqrt(-disc)/(2*a);printf("has complex roots:n");printf("%8.4f+%8.4fin",realpart,imagpart);printf("%8.4f-%8.4fin",realpart,i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论