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

(一)改错题
计算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
源程序(有错误的程序)
#include <stdio.h>
int main(void)
{
double x,y;
printf("Enter x: \n");
scanf("=%f", x);
if(x = 10);
{
y = 1 / x
}
else (x != 10)
{
y = x;
}
printf("f(%.2f) = %.lf\n" x y);
return 0;
}
错误信息:
错误原因:if括号后面多加引号
改正方法:去掉if括号后面的引号
错误信息:
错误原因:y = 1 / x后面没有分号使程序无法正常结束
改正方法:在x后面加分号
错误信息:
错误原因:else后面加了判断条件,else是对if的补充而已,不符合if就一定会跳转到else,不能满足题意
改正方法:把else改为else if
错误信息:
错误原因:printf语句括号内,输出xy没有用逗号隔开。
改正方法:在x前后加上逗号。
错误信息:

错误原因:输出语句中f(%.2f)是保留了两位小数,然而题目要求是保留一位
改正方法:将.2f改为.1f
错误信息:
错误原因:if语句后面一个等号是赋值,两个等号才是等于
改正方法:在if括号内再加一个等号
错误信息:
错误原因:输入的scanf内x没有取地址符
改正方法:在x前加上取地址符&
错误信息:

错误信息:
错误原因:等号错误,定义类型错误
改正方法:scanf语句中去掉=然后定义的是double类型应该改为%lf
错误信息:
错误原因:输出printf不用换行
改正方法:去掉\n
错误信息:
错误原因:最后输出=后面少1
改正方法:改为%.1lf

(二)学习总结
1.if(a)if(b) x=x+1;else y=y+1; 的确切含义是什么?这个else应该和哪个if配对?如何明确表达这种配对方法?将该段代码按照规范化的格式进行书写。
2.C语言的表达式 (-10< x <10)能够表达x在区间(-10,10)吗?为什么?如果不能,正确的表达式应该怎么写?
3.C语言中输入数据时,如果遇到非法字符,则认为输入结束。运行程序(1),输入123a,看看输出结果是什么?你能解释是为什么吗?,
程序(1)程序在遇到非法运算符时会停止赋值将非法运算符前面的数值赋给a将1赋给b
输入123a的时候遇到了非法运算符a无法继续读取你所输入的值所以只正确读取一次n=1

4.输入时一定要注意加取地址符&,注意保留几位小数,以及是否需要定义double,还有就是一个=是赋值,两个等号==才是等于
(三)实验总结
7-2 计算分段函数[2]


7-4 算术入门之加减乘除


7-6 输出三角形面积和周长


7-8 出租车计价


问题1:对函数理解十分不到位
解决办法:百度,问同学,但还不是能自己独立想出
问题2:不能输出
解决办法:当是数学函数时,没有进行定义
问题3:不知道四舍五入
解决办法:经网上搜索可以是(int)(A + 0.5),老师讲的是%d自己为四舍五入

(四)PTA提交列表

posted on 2017-10-29 16:23  菠萝的海  阅读(540)  评论(0)    收藏  举报