一、PTA实验作业

题目1

1.实验代码

    int N,i;               //N为用户数
    char sex;                //sex表示性别
    double High;             //Hight表示身高  
    scanf("%d",&N); 
    for(i=0;i<N;i++){
        scanf(" %c%lf",&sex,&High); 
        if(sex=='F')
           printf("%.2f\n",High*1.09);
        else
          printf("%.2f\n",High/1.09);
        }

2.设计思路

(1)定义整型变量N为用户数;定义字符型变量 sex表示性别;定义浮点型变量Hight表示身高;
(2)输入N的值;
(3)赋i的初值为0;
(4)当i小于N时,输入性别sex和身高Hight;
(5)如果用户性别为女(F)则输出(High*1.09),否则输出(High/1.09);
(6)重复执行第3步骤,直到条件不满足时结束。

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

  • 判断性别的地方没处理好,字符型的变量没弄好;上网查询后稍微理解了,而且今天上课老师重新讲解了一遍。
  • 条件没判断好,仔细审题并请教同学后才明白。

4.本题提交列表


题目2

1.实验代码

       int i,s,a,value,n;                // s代表总和,value表示每一项的数 
       s=0;
       scanf("%d %d",&a,&n);
       value=a;
       for(i=0;i<n;i++){
           s=s+value;
           value=value*10+a;
       }

       printf("s = %d\n",s);

2.设计思路

(1)定义整型变量a为正整数,n为最后一项的a的个数,s为对应的和
(2)赋s的初值为0,i的初值为0;
(3)输入a的值和n的值;让value等于a;
(4) s=s+value;
(5)value=value*10+a;
(6)重复执行第4步骤,每重复一次,i加一,直到i不小于N时结束;
(7)输出此时s的值。

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

  • 表达式没表述好导致结果错误,监测变量发现问题。

4.本题提交列表


题目3

1.实验代码

	int i,n,value1,value2,min;         //n表示总共的个数,value1表示第一个数, value2用于存放接下来输入的数, min为最小值
	scanf("%d",&n);
	scanf("%d",&value1);
	min=value1;
	if(n!=1){
	  for(i=1;i<=n;i++){
	    scanf("%d",&value2);
		  if(min>value2)
		    min=value2;
    }
	printf("min = %d",min);
	} 
	else
	  printf("min = %d",min);

2.设计思路

(1)定义整型变量n表示总共的个数,value1表示输入的第一个数, value2用于存放接下来输入的数, min为最小值,i等于0;
(2)输入n的值和第1个数value1的值;
(3)如果输入的n不为1,则执行第4步骤,否则执行第6步骤;
(4)输入value2的值,与min进行比较,若value2比较小则min等于value2;否则继续执行下一步;
(5)重复执行第4步骤,每重复一次,i加一,直到i大于N时结束;
(6)输出min的值。

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

  • 没有判断n=1的情况:虽然算法没有错,但是调试的时候无法进行下一步,找到错误后就改正了。

4.本题提交列表

题目4

1.实验代码

        int number1,number2,N,i;                     // number1为随机数,number2用于存放输入的数
	scanf("%d%d",&number1,&N);
	for(i=1;i<=N;i++){
		scanf("%d",&number2);
		if(number2<0){
			printf("Game Over");
			break;
		}
		else if(number2>number1){
			printf("Too big\n");
		}
		else if(number2<number1){
			printf("Too small\n");
		}
		else if(i==1&&number1==number2){
			printf("Bingo!");
			break;
		}
		else if(i>1&&i<=3&&number1==number2){
			printf("Lucky You!");
			break;
		} 
		else if(i>3&&number1==number2){
			printf("Good Guess!");
			break;
		}
        }
        if(i>N){
    	printf("Game Over");
	}   

2.设计思路

(1)定义整型变量N为猜数次数,number1为随机数,number2用于存放猜测数,i=0;
(2)输入number1和N的值;
(3)当i小于等于N时,执行下一个步骤;
(4) 输入number2;
(5)如果number2小于0,则输出“gameover”后直接结束程序;
(6)如果number2大于number1,则输出“Too big”;
(7)如果number2小于number1,则输出“Too small”;
(8)如果i==1同时number1等于number2,则输出“Bingo!结束”;
(9)如果i>1同时i<=3同时number1等于number2,则输出“Lucky You!结束”;
(10)如果i>3同时number1等于number2,则输出“Good Guess!”结束;
(11)当i大于N时,输出“Game Over”。

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

  • 没有考虑好条件
    结果一直错误,调试后发现条件写错了。

4.本题提交列表

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

三、本周学习总结

1.你学会了什么?

  • 掌握了循环结构的基本运用,比如像最佳情侣身高差,之前只能求一个用户,加上循环结构后就可以一下子求出多个结果,明显提高了效率。
  • 学会了调试,利用调试找出错误比之前自己找错误方便很多,特别是编辑没有错答案错误的时候,监测变量可以更快的确定错误的地方。
  • 对于比较复杂的问题有了更好的解决方式,不用像之前那样做很复杂的过程。
  • 现在会有先写算法的意识了,有了解题思路再开始打代码而不是直接开始写。

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

  • 掌握的还不是很熟练,所以对于比较难的题还是没有什么好的思路,本次作业中很多题目都没有采取比较好的解题方式;只会用基本的循环结构,利用的还不是很好。

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

  • 平时写题目比较随便,很多细节都不以为然,所以考试的时候会一直出错;当时还不太会调试,所以错误找不出来。
  • 写作业的时候没有控制时间,考试的时候就有点手忙脚乱的,有点太着急。
  • 以后作业尽量独立并限时完成,多请教老师和同学。
posted on 2017-11-02 22:57  EVOLYM  阅读(201)  评论(4编辑  收藏  举报