一、PTA实验作业

1

1.实验代码

	int i,N;
	char sex;
	float high;
	scanf("%d",&N);
	for(i =1;i <=N;i ++){
	scanf(" %c %f",&sex,&high);
		if(sex =='F')
			high =high *1.09;
			
		else if(sex =='M')
			high =high /1.09;
		printf("%.2f\n",high);}

2.设计思路

1.定义两个整型变量i,N分别存放循环体的次数和输入的用户数
2.定义一个字符型变量sex用来存放性别,定义一个浮点型数用来存放身高
3.读取一个数N
4.初始化i=1
5.当i<=N时,执行6,否则执行10
6.输入性别和身高
7.如果性别是女(F),计算high=high*1.09
8.如果性别是男(M),则计算high=high/1.09
9.i++
10.输出high,返回5。

3.本题调试过程碰到问题及解决方法

该题调试过程中没有遇到什么问题,只是需要注意输出语句在每次循环都需要输出,所以它在循环体内,同时利用“\n”让结果更美观。

4.本题PTA提交列表(要提交列表,不是结果)

2

1.实验代码

	int a,n,i,sum =0,flag; \*flag用来存放每次循环的值*\
	scanf("%d%d",&a,&n);
	if(a <=9 && n <=9)
		for(i =1;i <=n;i ++){
			flag = 0;
			for(int j=1;j<=i;j++){
				flag=flag*10+a;
			}
			sum = sum + flag;
		}
	printf("s = %d",sum);

2.设计思路

1.定义整型变量a,n,i,sum,flag,并初始化sum=0
2.读取两个数a和n
3.判断a和n是否都<=9,如成立,执行4,否则退出程序
4.初始化 i = 0
5.当i<=n时,初始化flag=0
6.定义一个整型变量j并初始化j=1,当j<=i时,执行7
7.计算flag=flag*10+a
8.j++,返回6
8.计算sum=sum+flag,i++,返回5
9.输出 sum

3.本题调试过程碰到问题及解决办法

这个题我开始没有没有定义一个中间变量用来储存每次循环后那个数字的值,所以最后计算出来的结果有错误,后来根据结果错误来发现代码的缺点。

4.4.本题PTA提交列表(要提交列表,不是结果)

3

1.实验代码

	int n,i,number,min;
	scanf("%d",&n);
	scanf("%d",&min);
	for(i =1;i <=n-1;i++){
		scanf("%d",&number);
		if(number <min)
			min =number;	
	}
	printf("min = %d",min);

2.设计思路

1.定义整型变量n,i,number,min
2.读取一个数n来表示需要输入的数的个数
3.读取第一个数并把它假设成为最小值min
4.初始化i=1
5.当i<=n-1时,执行6,否则输出min
6.输入数字number
7.该数若是小于min,执行8,否则执行9
8.把number的值赋给min
9.i++,返回5

3.本题调试过程碰到问题及解决办法

这个程序中,最开始没想到用第一个值作为最小值来与其他值进行比较,而是定义另一个数字作为最小值,后来想到这样就会有一个不足之处,若是定义的这个数比其他所有数都小的话,结果就不会正确。

本题PTA提交列表(要提交列表,不是结果)

4

1.实验代码

int i,num,number,n=0,N;
	scanf("%d%d",&num,&N);
	do{
		scanf("%d",&number);
		if(number <0){
			printf("Game Over");return 0;}
		if(number >num)
			printf("Too big\n");
			
		else if(number <num)
			printf("Too small\n");
			
		n++;
	}while(num !=number);
	if(n ==1)
	  printf("Bingo!\n");
	else if(n<=3)
		printf("Lucky You!\n");
	else if(n <=N)
		printf("Good Guess!\n");
	else
		printf("Game Over\n");

2.设计思路

1.定义整型变量 num,number,n,N,并初始化n=0
2.输入一个两个数分别存放在num和N中
3.输入一个数number
4.如果number<0,输出Game Over,并结束程序
5.如果number>num,输出Too big
6.如果number<num,输出Too small
7.n++
8.如果num不等于number,返回3,直到number等于num
9.如果n==1,输出Bingo!
10.如果n<=3,输出Lucky You!
11.如果n<=N,输出,Good Guess!
12.输出Game Over,结束程序

3.本题调试过程碰到问题及解决办法

do while 后面的条件我自己开始设定的有问题,我设置的是numnumber,这样的话循环只会执行一次,并且计算机会找到正确值。还有=和的区别有时候会容易疏忽。

4.本题PTA提交列表(要提交列表,不是结果)

二、截图本周题目集的PTA最后排名。

三、本周学习总结

1.你学会了什么?

1.while循环和do while 循环,循环内的条件的设置
2.分清楚了for循环和while循环的区别,for循环是需要知道次数的循环,while的使用条件则更为丰富
3.学会了使用嵌套循环
4.学会了在某些循环中,需要定义另一个变量来储存中间值
5.会使用循环语句中的break和continue

2.本周的内容,你还不会什么?

1.有的难的题目自己思路不够清晰,需要考虑很久,甚至有时候完全懵逼状态,可能数学不够好吧……龟兔赛跑的这个问题,我只去考虑龟兔各自的路程,而没有想到去判断他们相遇时候的情况,导致自己写的代码很冗余
2.break和continue的使用比较少,自己掌握得不是很全面
3.while里的条件语句有时候会理解错

3.分支结构上机考试总结。

(1)题目都会做,但是做题的速度太慢了,有的题目自己没有找到比较简单的方法,所以代码量会很大,某些数学函数自己也没有完全掌握。
(2)程序错误在调试里面的错误提醒里找,或者检测变量
(3)对自己的成绩不满意,因为都会做,但是却没有做完,很难受,改进的话,只有慢慢多做题了,并且基础的知识一定要牢记。