c语言第三次作业

(一)改错题

计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数。
输入输出样例1:
  Enterr x: 10.0
  f(10.0) = 0.1

输入输出样例2:
  Enter x: 234
  f(234.0) = 234.0

错误信息1:1242134-20171026113230973-922483622.jpg
错误原因:缺少语句结束符号
改正方法:y = 1 / x后面加;
错误信息2:1242134-20171026114031551-1799767023.png
错误原因:else找不到对应if语句
改正方法:删除if那一行最后面的;
错误信息3:1242134-20171026114405894-126671928.png
错误原因:scanf语句,后面没有取地址符。
改正方法:在x前面加&
错误信息4:1242134-20171026114728301-647801870.png
错误原因:x和y前面都没有逗号。
改正方法:x和y前加上逗号。
错误信息5:1242134-20171026135435430-126865952.png
错误原因:if语句中,=是赋值,==才是相等。
改正方法:加一个=
错误信息6:1242134-20171026135745680-1184872694.png
错误原因:scanf语句中,多了一个=并且y是double类型
改正方法:删除=,在%f中间加一个l
错误信息7:1242134-20171026140048648-1121540291.png
错误原因:保留的位数错误。
改正方法:把%.2f改为%.1f,后面的.lf改为.1f。

(二)学习总结

1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
含义:如果符合a条件,执行以下,再如果符合b,那么执行x=x+1,如果不符合b,那么执行y=y+1.
与第一个配对
用大括号的形式规范起来。

1242134-20171026141044133-1313839636.png

2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
不能,因为-10<0先执行,如果为真那么整体等于1,否则等于0,所以符不符合范围,都执行下面的条件。

(-10<x&&x<10)

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

include <stdio.h>

int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("a = %d, b = %d\n", a, b);
return 0;
}
1242134-20171026141212476-148452987.png

输入123a,一个数是123 一个是a,a本身存在数据,所以输出的a=123 b=1
scanf()函数的返回值是成功读入数据的个数,如果没有读取任何数据,则返回0。运行程序(2),分别输入123 45和123a,看看输出结果是什么?为什么?
程序(2)

include <stdio.h>

int main()
{
int a, b,n;
n = scanf("%d %d", &a, &b);
printf("n = %d\n", n);
return 0;
}
1242134-20171026141310976-1702551694.png

无法直接读取字符,n的返回值是2.
修改程序(1)

1242134-20171026140936773-459984256.png

4.总结

1.赋值与等于的符号一定要注意。
2.输入对应的命令。
3.规范好if--else语句和switch--case语句。
4.注意保留的小数,与对应的输出类型

(三)实验总结

(1)题目

本题目要求计算下列分段函数f(x)的值:1242134-20171026205643914-709768640.jpg

(2)流程图

1242134-20171026205702195-1048973537.png

(3)源代码

1242134-20171026205717133-236515931.jpg

(4)测试数据及运行结果

1242134-20171026205810023-695285429.png

(5)实验分析
问题:无法运行开根号函数
原因:没有设定数学的命令函数
解决办法:在#include<stdio.h>下一行加上#include <math.h>
(1)题目

对于输入的两个整数,按照要求输出其和差积商。

(2)流程图

1242134-20171026205829336-1992414401.png

(3)源代码

1242134-20171026205847851-619330513.jpg

(4)测试数据及运行结果

1242134-20171026205857180-1228938329.png

(5)实验分析
问题1:输出形式不对。
原因:printf语句错误
解决办法:该为("%d (运算符号)%d=%d",a,b,x)
问题2:a/b得数没有小数形式
原因:a和b都为整形
解决办法:在a前面加上(double)
(1)题目

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√
​s(s−a)(s−b)(s−c)

​​ ,其中s=(a+b+c)/2。

(2)流程图

1242134-20171026205918476-1405002085.jpg

(3)源代码

1242134-20171026205934351-1850266751.jpg

(4)测试数据及运行结果

1242134-20171026210056883-1617849728.png

(5)实验分析
问题1:无法保留两位小数
原因:printf语句错误
解决办法:%lf改为%.2f。
(1)题目

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:

起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

(2)流程图

1242134-20171026210116414-64653591.png

(3)源代码

1242134-20171026210126133-1415633480.jpg

(4)测试数据及运行结果

1242134-20171026210131211-1805782669.png

(5)实验分析
问题1:得数错误
原因:没有读懂题意
解决办法:加好前面对应的数值
问题2:最后四舍五入错误
原因:printf语句错误
解决办法:%lf改为%.0f可以是四舍五入的形式。

作业提交

1242134-20171027123630414-1638514966.png
1242134-20171027123635461-955225284.png

转载于:https://www.cnblogs.com/HGD980425/p/7739526.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值