C语言第一次作业
一、PTA实验作业
题目1.温度转换
本题要求编写程序,计算华氏温度150°F对应的摄氏温度。计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
fahr = 150, celsius = 计算所得摄氏温度的整数值
1.实验代码
int celsius,fahr;
fahr = 150;
celsius = 5*(fahr-32)/9;
printf("fahr = 150, celsius = %d",celsius);
2.设计思路
- 第一步:定义celsius,fahr俩个变量,分别表示摄氏温度和华氏温度
- 第二步:将150赋值给fahr
- 第三步:运用表达式celsius=5*(fahr-32)/9计算出celsius的值
- 第四步:输出fahr和celsius的值
3.本题调试过程中碰到的问题及解决办法
1.格式错误
错误原因:没有完全按照题目输出结果,忽略了等号左右的空格
解决办法:将题目输出与自己的仔细对比发现了空格问题
2 答案错误
题目要求输出:fahr = 150, celsius = 计算所得摄氏温度的整数值
而我的代码为:printf("fahr = 150,celsius =%d",fahr,celsius);
错误原因:惯性思维printf里面出现的变量就在后面表示出来,导致输出结果为fahr = 150,celsius = 150 因为此时%d对应的是fahr
题目2.将x的平方赋值给y
假设x的值为3,计算x的平方并赋值给y,分别以“y = x ∗ x”和“x ∗ x = y”的形式输出x和y的值。
输入格式:
本题无输入
输出格式:
按照下列格式输出代入x=3的结果:
y = x * x
x * x = y
1.实验代码
int x,y;
x=3;
y=x*x;
printf("%d = %d * %d\n%d * %d = %d",y,x,x,x,x,y);
2.设计思路
- 第一步:定义变量x,y
- 第二步:将3赋值给x
- 第三步:根据公式y=x*x计算出y的值
- 第四步:按照题目要求输出结果
3.本题调试时碰到的问题及解决方法
必须完全和题目要求的输出输出结果,一个%d对应一个变量,不能出错,否则出现答案或是格式错误
忘记\n,而题目要求俩行输出,导致结果错误
解决办法
题目3.是不是太胖了
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
输入格式:
输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。
输出格式:
在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。
输入样例:
169
输出样例:
124.2
1.实验代码
double H,weight;
scanf("%lf",&H);
weight=(H-100)*0.9*2;
printf("%.1f",weight);
2.设计思路
- 第一步:定义浮点型变量H,weight,分别代表身高和体重
- 第二步:输入H的值
- 第三步:根据公式weight=(H-100)0.92计算出weight的值
- 第四步:输出weight的值
3.本题调试时遇到的问题及解决办法
问题:题目要求输出的是124.2
我的错误输出
解决办法
发现输出的位数与要求输出的不同,通过课本例题得知应用%.nf形式,通过改变n改变输入的位数,改正后
题目4.输出各位数字
给定一个三位正整数,输出其百位数字、十位数字及个位数字。
输入格式:
直接输入一个三位正整数,没有其它任何附加字符。
输出格式:
在一行中输出所输入正整数的各个位数字,各个数字之间用逗号间隔,没有其它任何附加字符。
输入样例:
258
输出样例:
2,5,8
1.实验代码
int x,single,tens,hund;
scanf("%d",&x);
hund=x/100;
tens=(x-hund*100)/10;
single=x%10;
printf("%d,%d,%d",hund,tens,single);
2.设计思路
- 第一步:定义变量x,single,tens,hund,分别表示三位数,个位数,十位数,百位数
- 第二步:输入x
- 第三步:计算。x除以100得到百位数,x对10求余得到个位数,x减去百位数与100的乘积再除以10得到十位数字
- 第四步:按格式输出这3个数字
3.本题调试遇到的问题及解决方法
问题:如何通过合适的表达式求出这3个数字,尤其是求十位数字
解决方法:用到了整数除整数等于整数和求余这俩种运算
二、截图本周题目集的PTA提交列表及最后排名
三、本周学习总结
1.你学会了什么?
1.认识函数头,主函数,了解\n和return 0 的含义
2.运用scanf和printf语句实现输入,输出
3.学会调用数学函数
4.用double和float定义浮点型变量,以及浮点数在输入输出对应使用%lf,%f
5.%.nf通过n规定输出时的小数点位数
6.了解顺序结构,选择结构,循环结构
7.简单了解if-else语句,if else if语句,switch语句
8.什么是字符型数据,如何定义字符型变量,如何输入输出字符
9.=是赋值,是等于,a是变量,'a'是字符还有用、>、<、>= 、<= 、 !=表示关系式
2.本周的内容你还不会什么?
变量输入要求了范围,不知道如何在代码中表示(用if语句判断吗?)
3.你碰到什么困难,打算如何解决?
知道算法怎么写,但是转化成代码还是需要参考书本。还有通过PTA作业,发现省题不清,多次格式错误,答案错误,比如第一题的时候因为语言习惯多加了个.导致答案错误,系统提示错误理由:无话可说。。。。
我认为应该多多练习,提高写代码的能力,另外就是写代码时更加严谨,像格式错误和答案错误是可以避免的。