版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档供参考,可复制、编制,期待您的好评与关注! 实验13 未做和选做题1. 求一元二次方程的根输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入参数a,b,c,求一元二次方程a*x*xb*xc0的根,结果保留2位小数(如果答案为3.50,则直接显示为3.5)。按情况分别输出以下内容(文字中的标点为西文标点,无空格。括号内为说明):(1)a=b=c=0,meaningless(2)a=b=0,c!=0,error(3)x=值 (值为-c/b)(4)x1=值1 (值1为(-b+Math.sqrt(d)/(2*a)) x2=值2 (值2为(-b-Mat
2、h.sqrt(d)/(2*a))(5)x1=值1+值2i x2=值1-值2i (值1为-b/(2*a),值2为Math.sqrt(-d)/(2*a))输入输出示例:括号内为说明输入:5 (repeat=5)0 0 0 (a=0,b=0,c=0)0 0 1 (a=0,b=0,c=1)0 2 5 (a=0,b=2,c=5)21 89 35 (a=21,b=89,c=35)2 2 3 (a=2,b=2,c=3)输出:a=b=c=0,meaninglessa=b=0,c!=0,errorx=-2.5x1=-0.44x2=-3.8x1=-0.5+1.12ix2=-0.5-1.12iimport java
3、.util.Scanner;public class Test30009 public static void main(String args) int repeat, ri; int a,b,c,d; double x1,x2; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri = 1; ri <= repeat; ri+) a=in.nextInt();b=in.nextInt();c=in.nextInt(); /*-*/ if(a=0&&b=0&&c=0) System.
4、out.println("a=b=c=0,meaningless"); else if(a=0&&b=0&&c!=0) System.out.println("a=b=0,c!=0,error"); else if(a=0&&b!=0) x1=-(double)c/b; System.out.println("x="+Math.round(x1*100)/100.0); else d=b*b-4*a*c; if(d>=0) x1=(-b+Math.sqrt(d)/(2*a); x2
5、=(-b-Math.sqrt(d)/(2*a); System.out.println("x1="+Math.round(x1*100)/100.0); System.out.println("x2="+Math.round(x2*100)/100.0); else x1=-(double)b/(2*a); x2=Math.sqrt(-d)/(2*a); System.out.println("x1="+Math.round(x1*100)/100.0+"+"+Math.round(x2*100)/100.0+&q
6、uot;i"); System.out.println("x2="+Math.round(x1*100)/100.0+"-"+Math.round(x2*100)/100.0+"i"); 说明:为防止出错,在编程前应考虑周全² 当a=b=c=0时,方程有无数解;² 当a=b=0,c!=0时,方程无解;² 当a=0,b!=0时,方程解为x=-c/b;² 当a!=0时,求:d=b*b-4*a*c若d>=0,有两个不同实根:x=(-b±Math.sqrt(d)/(2*a)若d
7、<0,有两个不同复根:x=-b/(2*a)±Math.sqrt(-d)/(2*a)i或: if(a=0) if(b=0) if(c=0) System.out.println("a=b=c=0,meaningless"); else System.out.println("a=b=0,c!=0,error"); else x1=-(double)c/b; System.out.println("x="+Math.round(x1*100)/100.0); else d=b*b-4*a*c; if(d>=0) x1
8、=(-b+Math.sqrt(d)/(2*a); x2=(-b-Math.sqrt(d)/(2*a); System.out.println("x1="+Math.round(x1*100)/100.0); System.out.println("x2="+Math.round(x2*100)/100.0); else x1=-(double)b/(2*a); x2=Math.sqrt(-d)/(2*a); System.out.println("x1="+Math.round(x1*100)/100.0+"+"+
9、Math.round(x2*100)/100.0+"i"); System.out.println("x2="+Math.round(x1*100)/100.0+"-"+Math.round(x2*100)/100.0+"i"); 2. 输出mn之间的所有闰年(未做)输入一个repeat(1<repeat<10),做repeat次下列运算:输入正整数m和n(1900<=m<=n<=2100),分别代表年份的起止值,输出该范围内所有的闰年。判断闰年的条件是:能被 4 整除但不能被 100
10、 整除,或者能被 400 整除。输出使用语句 System.out.println(year);输入输出示例:括号内是说明输入:22000 20172030 2040输出20002004200820122016203220362040import java.util.Scanner;public class Test40034 public static void main(String args) int year,m,n,repeat,ri; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;ri<=re
11、peat;ri+) m=in.nextInt(); n=in.nextInt(); /*-*/ for(year=m;year<=n;year+) if(year%4=0&&year%100!=0)|year%400=0) System.out.println(year); 3. 简单计算器(选做) 40033输入一个正整数repeat (0<repeat<10),做repeat次下列运算:程序模拟简单运算器的工作:输入一个算式,遇等号"="说明输入结束,输出结果。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同
12、,按从左到右的顺序计算。例:括号内是说明输入2 (repeat=2)15 + 2 / 3 = (数字与运算符之间有一空格)1 + 2 * 10 - 10 / 2 = (数字与运算符之间有一空格)输出510 import java.util.Scanner;public class T40033 public static void main(String args) int ri, repeat; int op1, op2, res; char operator; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1;
13、 ri<=repeat; ri+) op1=in.nextInt(); operator=(in.next().charAt(0); /*-*/res=op1;while(operator!='=') op2=in.nextInt();switch(operator) case '+': res+=op2;break;case '-': res-=op2;break;case '*': res*=op2;break;case '/': res/=op2;break;operator=(in.next().ch
14、arAt(0); System.out.println(res); 4. 找鞍点(选做)输入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入 1 个正整数 n和n 阶方阵a中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上最小), 就输出它的下标, 否则,输出"NO"(设a最多有1个鞍点)。例:括号内是说明输入:2 (repeat=2)4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 (n=4)2 1 7 4 1 (n=2)输出:a21=6NO import java.util.Scanner;
15、public class Test60019 public static void main(String args) int ri, repeat; int i,j,k,row,col,n,a; boolean flag; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri<=repeat; ri+) n=in.nextInt(); a=new intnn; for (i=0;i<n;i+) for (j=0;j<n;j+) aij=in.nextInt(); /*-*/ flag=true; row=0; col=0;/不写这些,就通不过编译 for(i=0;i<n;i+) /先在第i行中找出该行的最大值 row=i; /row保存最大值的行坐标 col=0; /col保存最大值的列坐标,假设第i行第0列元素为最大 for(j=1;j<n;j+) if(arowj>arowcol) col=j; /再判断arowcol是否是第col列中的最小值 flag=true; for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肿瘤科的肿瘤标志物
- 冬季寒冷的驱寒暖身食物
- 小型露天采石场安全会议制度
- 孕期的饮食禁忌清单
- 胆汁反流性胃炎的体位护理
- 2026厦门市护士招聘笔试题及答案
- 2026衢州市辅警招聘面试题及答案
- 大四欢送会题目及答案
- MES系统辅助决策支持系统接入标准
- 2026年秋天到了幼儿园
- 《医疗机构重大事故隐患判定清单(试行)》知识培训
- 牛棚承包合同
- 【严佳炜】基于风险的配置:风险平价及在Alpha策略中的应用
- 测绘服务投标方案(技术标)
- 电力变压器的结构及工作原理
- 盆底生物反馈治疗肛门直肠功能障碍性疾病中国专家共识(2024版)解读
- 内科学-9版-第二十五章-消化道出血-课件
- 四川省绵阳市游仙区富乐实验中学2023-2024学年七年级下学期期中考试数学试卷(含答案)
- JTT695-2007 混凝土桥梁结构表面涂层防腐技术条件
- (高清版)DZT 0426-2023 固体矿产地质调查规范(1:50000)
- “课程思政”实施方案
评论
0/150
提交评论