C语言程序设计第三次作业——选择结构(一)

(一)改错题
错误信息:
1257524-20171029140407570-1560794388.png

错误原因:y=1/x后没加分号
改正方法:在其后加上分号
错误信息:
1257524-20171029140657133-1245967878.png

错误原因:if语句后接了;,使else语句找不到对应的if
改正方法:删掉if后的分号
错误信息:
1257524-20171029140754789-2108066775.png

错误原因:else后加了判断语句
改正方法:删掉(x != 10)
错误信息:
1257524-20171029140842992-1290463782.png

错误原因::" "与x之间x y之间缺少逗号
改正方法:在其间加上逗号
错误信息:
1257524-20171029141124414-1576358189.png

错误原因:if语句中不是给x赋值而是判断
改正方法:应改成x==10
错误信息:
1257524-20171029141340398-2077462888.png

错误原因:scanf("=%f", x);的括号中格式错误
改正方法:删掉=,%f改成%lf,x前面的空格改成&
错误信息:
1257524-20171029141541461-1314185864.png

错误原因:最后输出的X,Y格式不一样
改正方法:printf语句中,全改为%.1f
错误信息:
1257524-20171029142252648-406995182.png

错误原因:与题目中所给格式不符
改正方法:删掉源程序中的所有\n
正确语句:
1257524-20171029142404508-1346379852.png

1257524-20171029142422930-1485118083.png

1257524-20171029142456023-1592641034.png

(二)学习总结
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
①确切含义是在同时满足a和b的情况下,执行“x = x + 1”的语句,否则执行“y = y + 1”的语句
②else应该和之前与其最近的且不带else的if配对,所以它应与第二个if配对
③如果想明确表达这种配对方法可以在每一个if 或else if或else后添加“{}”
④改正后的代码:
1257524-20171029143420711-375454012.png

2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
①不能
②因为在C语言里面,逻辑运算符的运行顺序是从左至右的顺序,先比较x与-10的大小,如果为真则赋值1,如果为假则赋值0,然后再用赋上的值和10比较,这样违背了x与10比较的目的
③正确表达方式如下:
1257524-20171029143719523-1560236719.png

3.C语言中输入数据时,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?
①输出结果:
1257524-20171029144109273-213497029.png

②原因:定义的a,b为整型,但输入的a并不属于整型。则a属于非法字符,直接结束,b随意给一值=1。
scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
①输出结果:输入“123 45”
1257524-20171029144450273-1865874205.png

输入“123a”
1257524-20171029144617226-2146307739.png

②原因:因为返回值是成功读取变量的个数,当输入“123 45”的时候,因为两个数都是整形,可以读出两个数据,所以n=2;当输入“123a”的时候因为“a”是字符,为非法字符,不能读取数据,所以只将“123”赋值给了a,程序只读出一个数据,所以n=1
修改程序(1),当输入非法数据时,输出“Input error!".样例如下:
1257524-20171029145244195-1389663320.png

4.对其他你认为需要进行总结的内容进行总结。
①要注意else后不能再跟语句
②牢记if和else要对应,一定要考虑配对问题
③要注意字符数据的输入还是实数或整形的,输入和输出的格式要一致
(三)实验总结
(1)题目
7-2 计算分段函数[2]
本题目要求计算下列分段函数f(x)的值
1257524-20171029150623508-283972317.png

(2)流程图
1257524-20171029151731320-1392375054.png

(3)源代码
1257524-20171029150828226-777698704.png

(4)测试数据及运行结果
1257524-20171029150910414-1877037937.png

1257524-20171029150950961-1026209614.png

(5)实验分析
问题1:1257524-20171029152008101-834748654.png

原因:程序中有数学运算
解决办法:加上1257524-20171029152137883-201484161.png

(1)题目
7-4 算术入门之加减乘除
对于输入的两个整数,按照要求输出其和差积商。
(2)流程图
1257524-20171029154127805-1360367426.png

(3)源代码
1257524-20171029153409492-1065332109.png

(4)测试数据及运行结果
1257524-20171029152537383-270200871.png

1257524-20171029152616789-1329566956.png

(5)实验分析
问题2:1257524-20171029154348930-668777853.png

原因:对a b定义的为整形变量,所以除法计算时结果出现错误
解决办法:a/b进行小数转化,在前面加(float)
输出三角形面积和周长
(1)题目
7-6 输出三角形面积和周长
根据输入的三角形的三条边a、b、c,计算并输出面积和周长
(2)流程图
1257524-20171029155557992-2080680572.png

(3)源代码
1257524-20171029154934570-147584530.png

(4)测试数据及运行结果
1257524-20171029154849476-1833197304.png

1257524-20171029154912070-699996099.png

(5)实验分析
问题及解决办法:输出结果不对,因为本题涉及很多除法及开方运算,所以会出现很多浮点数,将整形定义为double型解决了问题
(1)题目
7-8 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
(2)流程图
1257524-20171029162059180-627368634.png

(3)源代码
1257524-20171029160305289-1451523247.png

(4)测试数据及运行结果
1257524-20171029160019820-916880363.png

1257524-20171029160058555-501268308.png

1257524-20171029160129680-1976696872.png

(5)实验分析
问题及解决办法:时间收费与里程收费的结合遇到问题,和同学讨论后解决问题
(四)PTA提交列表
1257524-20171029162535273-1845414564.png

1257524-20171029162641023-409712149.png

转载于:https://www.cnblogs.com/Maria2614/p/7750276.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值