C语言第三次博客作业

一、PTA实验作业

题目1:最佳情侣身高

1.实验代码

	  int n;
	  double height1,height2;
	  char sex,c;
	  scanf("%d",&n); 
	  while (n>0){                                  //当n大于0时循环
	      scanf("%c%c%lf",&c,&sex,&height1);    //c用来获取输入n之后的回车键
		  switch (sex){                                   //判断输入的sex是f还是m
			  case 'F':height2=height1*1.09;n--;   //若是f,执行计算,n-1,跳出判断
		   	break;
			 default :height2=height1/1.09;n--;    //若不是,执行另一计算,n-1,跳出判断
		  	break;
		 }
		  printf("%.2f\n",height2);
	}

2.设计思路

  • (1)定义一个整形变量n,和两个浮点型变量height1,height2,和两个字符型变量sex,c
  • (2)首先输入n的值,进行下列循环:1.输入c,sex和height的值,其中c用来获取输入n之后的回车键
    2.进入switch的条件语句倘若sex=‘F’,则:height2=height1*1.09,n=n-1
    否则height2=height1/1.09,n=n-1。直到n<0循环结束。
  • (3)最后以保留两位小数的方式输出height2.

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

答:这道题刚开始的时候难到我了,做了好久都没做出来,提交结果一直都是运行超时,不知道为什么,后来
改了很多遍才发现while语句中的判断条件弄反了。调试了一下进入了死循环,看来是对于while语句还掌握不够熟悉。
后来看了书多次对比就懂得了()里的要为真,才能继续循环。

4.本题PTA提交列表

题目2: 特殊a串数列求和

1.实验代码

	int a,n,i=0,s=0,b=0;
	scanf("%d",&a);
	scanf("%d",&n);
	while(i<n){
	b=b+(a*pow(10,i));
	s=s+b;
	i++;
    }
	printf("s = %d\n",s);
	return 0;

2.设计思路

  • (1)首先先定义5个变量a,n,i,s,b,i用来对循环次数的限定,b用来存放aaa...的值,s用来存放总值。
  • (2)然后分别给i,s,b定义一个初始值0,接下来依次输入a,n的值
  • (3)进行一个循环b=b+(a*pow(10,i)),s=s+b,i=i+1.直到i>n循环结束。
  • (4)最后输出s的值。

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

答:这题很过分题目意思没有表明清楚,aaa难到不是表示三个a相乘吗?好吧是我理解错
题目的意思了,做了好久哦,思路那么清晰,都是答案错误,后来问了下舍友才直到这个aaa的含义
好吧,这题不难,在懂得题目意思后的我三两下就做出来了。不过感觉有个难点就是用那个b来存放aaa...的值,当时这边稍微想了一下。

4.本题PTA提交列表

题目3: 找出最小值

1.实验代码

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

2.设计思路

  • (1)这题吧,我首先是先定义四个变量i,n,min,a,a是用来存放随机输入的数字min为最终的所有数中的最小值。
  • (2)然后输入n和a的值,令min=a。
  • (3)进行一个循环语句令i=1,i=i+1,直到i>=n结束循环
    1.首先在循环中再次输入一个a,让min的值与a进行比较。
    2.若min>a相当于最开始输入的那个值更大,则min=a,让min等于更小的一个值,
    3.若是min<a则说明上一个a的值为更小值,则min=min,
  • (4)最后输出min的值。

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

答:这题呢,看似我上面的思路很清晰,可是答案错了,哈哈哈,我没有做出来,我和你一样感觉没问题呀,
就是答案错误,我改了很多遍,我感觉自己可以做出来这题,所以我就没有问同学哦,回去再思考下,
由于电脑不知道怎么会我的Devc都不能用所以都调试不了,很烦啊!好吧我回去再想下。

4.本题PTA提交列表

题目4: 猜数字游戏

1.实验代码

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

2.设计思路

  • (1)首先定义四个变量mynumber yournumber n,i。然后输入mynumber和n的值。
  • (2)然后进入while的循环语句i=i+1,直到i>n是结束循环
  • (3)在循语句中又进行条件语句的嵌套,如果yournumber=mynumber并且i=1的时候输出Bingo!结束这个条件语句
    如果yournumber<0,直接输出Game Over!然后结束这个条件语句
    如果yournumber>mynumber输出Too big 结束这个条件语句
    如果yournumber<mynumbers输出 Too small结束这个条件语句
    如果yournumbermynumber并且i>1并且i<=3 则输出Lucky You!然后结束这个条件语句
    如果yournumber
    mynumber并且i>3并且i<=n则输出Good Guess!然后结束这个条件语句
    如果yournumber>=0并且yournumber不等于mynumber则输出Game Over!
    是不是思路很清晰???哈哈哈

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

这道题稍微有一点麻烦,难点主要是在while循环语句中嵌套的if语句,这需要比较清晰的思维和逻辑,和对于break的巧妙运用。
当时我做的时候就是思路没有理清楚对于yournumber>=0&&yournumber!=mynumber这个语句不知道要放在循环内还是循环外比较合适。

4.本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

答:这周我主要是学习了循环语句和嵌套语句,学会了break,continue的相同点和不同点,不同点主要是continue只能用于循环,而break既可用于
循环也可用于switch语句。
还有就是学会了如何在循环中嵌套循环或者选择。初步接触了函数的使用。

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

嵌套语句真的有一点难,基本是由掌握,但是感觉题目还是有点难度,需要多加练习才行,今天看了翁恺的视屏感觉还挺有意思的,感觉会比老师讲的更好哦,哈哈哈。

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

这次上级考试我考的很不理想,说实话有点郁闷,这段时间傍晚需要去校运会训练好多次课都没有上到,然后最近也挺不自觉的代码打得少了,对学习开始有点松懈,
马马虎虎的有点开始应付作业,没有深入去思考。
错误的地方主要是一些细节,一些思维方式还是不行,感觉自己是那种比较笨的,想法都好奇怪,然后就是打字比较慢效率不高
然后我觉得以后还是要多看看翁恺的视屏,代码也要多大,问题还是需要深入去思考。因为笨所以更需要努力。

posted @ 2017-11-02 22:54  z&jack  阅读(265)  评论(6编辑  收藏  举报