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作业,发现省题不清,多次格式错误,答案错误,比如第一题的时候因为语言习惯多加了个.导致答案错误,系统提示错误理由:无话可说。。。。
我认为应该多多练习,提高写代码的能力,另外就是写代码时更加严谨,像格式错误和答案错误是可以避免的。

posted @ 2017-10-17 22:29  我是纪予哇  阅读(7948)  评论(4编辑  收藏  举报