0.展示PTA总分
1.本章学习总结
1.1 学习内容总结
1.学习了if--else,else--if的分支嵌套结构
if (判断条件)
{
执行语句1;
}
else
{
执行语句2;
}//用来实现二分支的语句
if(判断条件1)
{
执行语句1;
}
else if(判断条件2)
{
执行语句2;
}
·····
else
{
执行语句n;
}//用来判断多分支语句
if(判断条件1)
{
if(判断条件1.1)
{
执行语句;
}
else
{
执行语句;
}
}
else
{
执行语句;
}//用来实现嵌套语句
2学习了for循环
for(表达式1;判断条件;表达式2)
{
循环体语句;
}//先执行表达式1,再判断条件成立,执行循环体语句,执行表达式2,然后回到for判断条件,循环下去,直到判断条件不成立
3学习了switch语句
switch(表达式)
{
case 常量表达式1:
执行语句;
break;
case 常量表达式2:
执行语句;
break;
case 常量表达式n:
执行语句;
break;
default:
执行语句;
break;
}//这种与if语句差不多,但这种只能表达具体的值,不能表示范围;switch判断的是整形,而if判断的是整形或浮点数;并且这种效率更高
4学习了字符型数据
{
char op;//用来定义字符型变量,char为类型名,op为字符型变量
scanf("%c",&op);
printf("%c",op);//字符型输入输出的第一种方法,调用时用%c,注意:空格也会被读成字符型变量
op=getchar();//字符型数据的输入,需要注意的是一次只能调用一个字符,调用多个字符是可以用循环调用
putchar (op);//输出存放在op中的字符型数据
}
1.2本章学习体会
1:在学习过程中,只要我预习了,跟上老师节奏还不是问题,也在过程中逐渐感受到了计算机的魅力,虽然有点难,但代码通过的一瞬间还是非常高兴的;也基本了解了老师的讲课风格,逐渐适应了大学生活;
2:第一周代码量为421行,第二周为611行;
PTA实验作业
2.1 题目名1
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。
提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。
2.1.1数据处理
数据表达:用了int hour, int minute,char op;这些变量
数据处理:先判断是否小于12或大于等于0点,在这个范围里则原样输出,然后判断12这个特殊的时间点,原样输出但时间为下午,其他的则为下午时间,小时减去12
2.1.2代码截图
2.1.3扩展
可以将每个小时,分钟都占2个宽度,不够用0补;写法便把输出改为%02d便可以
2.1.4PTA提交列表及说明
问题:第一次做时就是那个字符串我想用字符型数据来输出,结果总是错误
解决:我们也没学过字符串,最后发现直接用输出AM PM就ok
问题:在边界点12点,0点的地方错误
解决;将12点直接分开来
题目名2
输入三个整数x,y,z,请把这三个数由小到大输出。
2.1.1数据处理
数据表达:用了四个整型x,y,z,item变量,item变量用来暂时存储值,将两个变量交换
数据处理:通过输入三个数,不断比较大小,交换数值,从而输出按x,y,z从大到小的顺序
2.1.2代码截图
2.1.3扩展
1.循环输入未知个数,直到输入0为止, 然后将这些数中最大的一个数输出;
解决:制造一个循环,循环输入,比大小,直到0,最后输出最大的值
2.1.4PTA提交列表及说明
问题:第一次遇见这种题时,我脑中还没有这种思路,便按照一个一个的比较,一个一个的if语句,后面实在写不下去了
解决:手机百度,发现这种思路挺好,提高了不少效率,便按照她的思路来,虽然有一点语法错误,但通过编译器便调整出来了
题目名3(用这题的原因并不是难,而是她的扩展广泛)
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√s(s−a)(s−b)(s−c) ,其中s=(a+b+c)/2。
2.1.1数据处理
数据表达:用了简单的 int a,b,c,s; double area,perimeter;分别计算出周长,面积,得出答案
数据处理: 用到了题目给的表达式,直接就出来了
2.1.2代码截图
2.1.3扩展
1.可以将三角形变为等腰或直角或其它的三角形
解决:将if中的条件改变成题目需要的条件
2.可以将三角形变成四边形或五边形,甚至多边形
解决:有明确的边数时, 直接运用面积公式来求解,多边形时则用循环统计边数,用面积公式求解
3.将整数边变为小数
解决:将类型变为double
2.1.4PTA提交列表及说明
问题:周长我一直认为是个整数,调试也没有问题
解决:没办法了,找室友帮我看出来的
阅读代码
分析:用if判断形成三角形的条件,否则输出0;在用循环判断出三个最大的数,运用题目三 的公式计算面积;这只是我用我学过的来解释,当然题目肯定不像这样,还有就是我一个也看不懂ACM