C语言第三次博客作业---单层循环结构

一、PTA实验作业

题目1

  1. 实验代码
int n,i;
double height1,height2;
char sex;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
	getchar();
	scanf("%c%lf",&sex,&height1);
	
	switch(sex){
		case 'M':height2=height1/1.09;break;
		case 'F':height2=height1*1.09;break;
	}
printf("%.2f\n",height2);
}
  1. 设计思路
  • 第一步:定义两个整型变量n,i,两个浮点型变量height1,height2,一个字符型变量sex
  • 第二步:输入n的值
  • 第三步:输入sex与height1的量
  • 第四步:若sex=M,则:height2=height1/1.09
  • 第五步:若sex=F,则:height2=height1*1.09
  • 第六步:输出high2的值,并保留两位小数
  • 第七步:重复步骤3,直到i>n

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

刚开始老是出现图中的问题,后来请教学长,加了getchar(),使回车不执行只换行就解决了

4.本题PTA提交列表

题目2

  1. 实验代码
    int n,a,s,i,b;//引入变量b存放aa……的值
	scanf("%d%d",&a,&n);
	s=0;
	b=a;
	for(i=1;i<=n;i++)
	{
	s=s+b;
	b=b*10+a;
	}
	printf("s = %d",s);
  1. 设计思路
  • 第一步:定义五个变量a,b,i,s,n
  • 第二步:输入a,n的值
  • 第三步: s=0;b=a
  • 第四步:s=s+b;b=b*10+a;
  • 第五步:重复步骤3,直到i>n
  • 第六步:输出s的值

3.本题调试过程碰到问题及解决办法
题目理解错了,以为aa是a×a后来经过调试跟踪变量发现问题

4.本题PTA提交列表

题目3

  1. 实验代码
      int n,i;
   double min,s;//s为输入的每个数的值
   scanf("%d",&n);
   scanf("%lf",&s);
   min=s ;
   for(i=1;i<n;i++)//执行循环体使min为最小值。
   {
   	if(min>s)
	   {
    	min=s;
	   }
	scanf("%lf",&s);
   }
   printf("min = %.0f",min);
  1. 设计思路
  • 第一步:定义两个整型变量n,i,两个浮点型变量min,s
  • 第二步:输入n,s的值
  • 第三步:min=s
  • 第四步:若min>s,min=s
  • 第五步:输入下一个s的值
  • 第六步:重复步骤四,直到i>=n
  • 第七步:输出min的值

3.本题调试过程碰到问题及解决办法
原先的代码如果给的数都大于0,就不会输出最小值了,后来先将第一次的s值赋值给s,就解决了


4.本题PTA提交列表

题目4

  1. 实验代码
	int mynumber,N,i,yournumber;//N为猜测的最大次数
	scanf("%d%d",&mynumber,&N);
	for(i=1;i<=N;i++)
	{
		scanf("%d",&yournumber);
		if(yournumber<0)
		{
			printf("Game Over\n");break;
		}
		if(yournumber>mynumber)
		{
			printf("Too big\n");
		}
		else if(yournumber==mynumber)
		    if(i==1)
			{
				printf("Bingo!\n");break;
			}
			else if(i>=4)
			{
				printf("Good Guess!\n");break;
			}
			else
			{
				printf("Lucky You!\n");break;
			}
			else
			printf("Too small\n");
		}
   if(yournumber>=0&&yournumber!=mynumber)
   printf("Game Over\n");
  1. 设计思路
  • 第一步:定义变量mynumber,N,i,yournumbe
  • 第二步:输入mynumbe,N的值
  • 第三步:输入yournumbe的值
  • 第四步:若yournumber<0,则输出Game Over,结束循环
  • 第五步:若yournumber>mynumber,则输出Too big
  • 第六步:若yournumbermynumber,进入判断,若i1,输出Bingo!,结束循环
  • 第七步:若i>=4,输出Good Guess!,结束循环
  • 第八步:否则,输出Lucky You!,结束循环
  • 第九步:若yournumber<mynumbe,则输出Too small
  • 第十步:重复步骤三,直到i>N
  • 第十一步:若yournumber>=0且yournumber不等于mynumber,输出Game Over

3.本题调试过程碰到问题及解决办法
这道题的逻辑性很强,刚开始时无从下手,后来用纸笔理了理一条条分支可能,才打出代码

4.本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

学会了运用for语句,和while语句循环,如果给定了循环次数应该用for,如果没明确给,而是由某一个变量控制,应用while

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

虽然请教了学长,但还是不懂情侣身高那题为什么要加getchar(),它的作用是什么,为什么这里要加

3.你碰到什么困难,打算如何解决?

感觉我的算法比较复杂,希望可以精简一下算法,还有做题有点着急,应该好好研究一下怎么解题,再敲代码

posted @ 2017-10-26 22:50  夜雨生虹  阅读(205)  评论(6编辑  收藏  举报