https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2360
PTA作业
完成第11周、第12周和第13周的8次pta作业,将PTA作业中部分题目的设计思路和遇到的问题及解决办法总结在博客中。目前完成的作业中需要总结的题目是:
- 第11周的第6次作业(循环)和第7次作业(循环)中任选一题(15经验值)
- 第12周的第8次作业(循环)和第9次作业(循环)中任选一题(15经验值)
- 第13周的第10次作业(循环)和第11次作业(循环)中任选一题(15经验值)
博客的具体书写内容和格式
从PTA作业选取的题目,按照下述样例进行总结,包括代码、文字描述解题思路和流程、错误调试和解决办法。4部分都必须写,缺任何一项倒扣该项所有分数!
举例:
第三次作业 题目3-1 高速公路超速处罚
第七次作业
7-4 查询水果价格 (15 分)
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
输入格式:
输入在一行中给出用户连续输入的若干个编号。
输出格式:
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。
输入样例1:
3 -1 0 2
输出样例1:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00
输入样例2:
1 2 3 3 4 4 5 6 7 8
输出样例2:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20
#include<stdio.h> int main(void) { int i,a,sum; printf("[1] apple [2] pear [3] orange [4] grape [0] exit "); for(i=0;i<5;i++){ scanf("%d",&a); if(a == 0){ return 0; } else{ sum++; switch(a){ case 1:printf("price = 3.00 ");break; case 2:printf("price = 2.50 ");break; case 3:printf("price = 4.10 ");break; case 4:printf("price = 10.20 ");break; default:printf("price = 0.00 "); } } if(sum == 5){ return 0; } } }
第八次作业
7-1 求奇数和 (15 分)
本题要求计算给定的一系列正整数中奇数的和。
输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出正整数序列中奇数的和。
输入样例:
8 7 4 3 70 5 6 101 -1
输出样例:
116
#include<stdio.h> int main() { int num,x; for(;;){ scanf("%d",&x); if(x<=0){ break; } if(x%2!=0){ num=num+x; } } printf("%d",num); return 0; }
第十次作业
7-1 统计素数并求和 (20 分)
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
#include<stdio.h> int main() { int M, N, i, n = 0, x, y = 0; scanf("%d %d",&M, &N); for(i = M; i <= N; i++) { for(x = 2; x < pow(i, 0.5); x++) { if(i % x == 0) { break; } } if(x > pow(i,0.5) && i != 1)x { n++; y += i; } } printf("%d %d",n,y); return 0; }
1.实验代码(2经验值)
注意:将代码贴在此处,必须使用插入代码的方式!!禁止将代码直接粘贴到博客上,否则对应题的15经验值无法获得,即为0经验值。
代码要求:要求使用cnblogs代码控件。凡粘贴IDE中的代码截图,或者贴文字而没有关键字高亮或彩色的,则对应题的15经验值无法获得,即为0经验值。。参考其他学校博客https://www.cnblogs.com/ranh941/p/7545915.html、http://www.cnblogs.com/huangxman/p/5871201.html
2 解题思路(10经验值)
(1)主要描述题目算法(3经验值)。可以用文字描述(不仅限于文字描述,伪代码等方式也可以),如:
第一步:###
第二步:###
第七次作业
第一步:阅读题目按照题目要求先定义变量,阅读题目了之后发现需要用到for循环来解决这个问题,并且还要运用switch-break,因为超过五次之后跳出程序,所以要用此程序。
第二步:理解题目了之后要看要求,这是一个复合的程序用一种是不能解决问题的,根据他的要求他需要一个问价系统所以要用到if语句来判断是否是这种水果,之后再判断是哪种水果的价钱相对应。
第八次作业
第一步:阅读题目要求按照题目要求我们知道本题要求计算给定的一系列正整数中奇数的和,所以要先判断奇数,用if语句来判断。
第二步:再求和,用for循环来求和。
第十次作业
第一步:阅读题目按照题目要求来思考框架及结构,根据题目我们知道需要判断素数,而素数是只有1和他本身两个因数的自然数,所以用if语句来判断此程序,之后再用for循环来求和。、
第二步:用for循环来求和之后并在要求区间内,之后用printf输出结果和。
(2)流程图(7经验值)
样图如下。
第七次作业
第八次作业
第十次作业
3.本题调试过程碰到问题及解决办法(3经验值)
第七次作业
第八次作业
第十次作业
注意1:有错误提示的截图。
注意2:若无错误提示截图,请提供程序运行结果截图。(当然存在一次就过的同学,合情合理)
注意3:必须有编译器设置断点、单步调试的界面截图。
注意4:注意1和注意2必须满足其中任意一项,注意3必须满足,若无截图,则对应题的15经验值无法获得,即为0经验值。
注意5:务必请把你遇到的问题是什么以及解决方法描述清楚。若助教或教师无法理解,则对应题的15经验值无法获得,即为0经验值。
要求三(共10经验值)
个人总结
(1)本周你学习哪些内容(不限于课上)?你有哪些收获?(5经验值)
本周学习函数的定义,库函数:由c语言系统提供定义,如scanf(),printf()等函数。
自定义函数:需要用户自己定义,如求和函数sumb2e()。
通过学习这个函数我们更能解决一些问题了,比如可以限定范围来解决函数问题。
(2)本周所学内容中你觉得哪些地方是难点?对此你做了哪些措施去克服这些困难?(5经验值)
函数声明是我们需要注意的重点,记得要在开头或者结尾把循环程序打进去,不要打在主程序里。
并且要多多练习代码的熟练度,这样才能让我们更加熟练掌握一些函数题目。
要求四(共10经验值)
互评和学习进度
1、点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。(5经验值)。
http://www.cnblogs.com/mayijing/ 马一婧
http://www.cnblogs.com/freedomjdp/ 鞠大鹏
http://www.cnblogs.com/abcdsjjs/ 时硕童
2、请用表格和折线图呈现你本周(10/24 12:00~10/7 12:00)的累积代码行数和时间、累积博客字数和时间(5经验值),表格和折线图请参考https://www.cnblogs.com/ranh941/p/7594640.html。
请注意,折线图体现的是累积代码行数和累积博客字数,例如:第1周代码行数为100、博客字数1000,第2周代码行数为200、博客字数为500,则对应的折线图中应该有两个点,折线图横坐标为时间(第1周、第2周),纵坐标为累积代码行数和博客字数(100和300或者1000和1500)。允许两个折线图,当然双y轴折线图更好。