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:
错误原因:缺少语句结束符号
改正方法:y = 1 / x后面加;
错误信息2:
错误原因:else找不到对应if语句
改正方法:删除if那一行最后面的;
错误信息3:
错误原因:scanf语句,后面没有取地址符。
改正方法:在x前面加&
错误信息4:
错误原因:x和y前面都没有逗号。
改正方法:x和y前加上逗号。
错误信息5:
错误原因:if语句中,=是赋值,==才是相等。
改正方法:加一个=
错误信息6:
错误原因:scanf语句中,多了一个=并且y是double类型
改正方法:删除=,在%f中间加一个l
错误信息7:
错误原因:保留的位数错误。
改正方法:把%.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.
与第一个配对
用大括号的形式规范起来。

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;
}

输入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;
}

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

4.总结

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

(三)实验总结

(1)题目

本题目要求计算下列分段函数f(x)的值:

(2)流程图

(3)源代码

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

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

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

(2)流程图

(3)源代码

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

(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)流程图

(3)源代码

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

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

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

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

(2)流程图

(3)源代码

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

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

作业提交


posted @ 2017-10-26 21:25  孤寂一粒沙  阅读(363)  评论(0编辑  收藏  举报