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

一、PTA实验作业

题目1:

1.实验代码

int N,i;//N为用户数,i为循环变量
double high1,high2;//用high1表示输出变量,用high2表示输变量
char ch;
scanf("%d",&N);
for(i=1;i<=N;i++){
scanf(" %c%lf",&ch,&high2);
switch(ch){
case 'F':
high1 = 1.09*high2;
break;
case 'M':
high1 = high2/1.09;
break;
}
printf("%.2f ",high1);
}
return 0;

2.设计思路

  • 第一步:首先定义整型变量N,i,双精度浮点型变量height1,height2,字符型变量ch。
  • 第二步:输入N的值,给出循环的次数。
  • 第三步:利用for语句进行循环,并输入用户的男女性别和其身高。
  • 第四步:用公式(女方的身高)×1.09 =(男方的身高),计算出对应情侣的身高,并再次循环。
  • 第五步:输出对应情侣的身高。

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

  • 这题我纠结了很久,因为输入并不像PTA题目中的一样,可以直接输入俩人的身高,而是输出一个便输入一个,我想了很久,只能去问舍友,然后他告诉我不是像题目中所说的,就是输入一个输出一个,然后重新写了一遍代码,就对了。


4.本题PTA提交列表

题目2:

1.实验代码

int a,b,n,s,i;//b为每次循环所需要加的数 
i=1;s=0;b=0;
scanf("%d %d",&a,&n);
while(i<=n){
	b=b*10+a;
	s=s+b;
	i++;
}
printf("s = %d",s);
return 0;

2.设计思路

  • 第一步:定义变量a,b,n,s,i。
  • 第二步:给i赋值为1,再分别把b和s的值归零,并输入a和循环的次数n。
  • 第三步:进入循环计算a+aa+aaa++.....++aaaaa(n个a)之和,并把值赋予s,i加一防止进入死循环。
  • 第四步:输出计算得出得结果s。

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

  • 因为本题比较简单所以没有遇到什么问题。









4.本题PTA提交列表

题目3:

1.实验代码

int i,n,count,min;//n代表次数,count存放输入得数字,min存放最小得数字。
scanf("%d",&n);
i=1;
if(n>1){
do{scanf("%d",&count);
if(min>count)
min=count;
i++;
}while(i<=n);}
else
{scanf("%d",&count);
min=count;}
printf("min = %d",min);
return 0;

2.设计思路

  • 第一步:定义变量i,n,count,min。
  • 第二步:输入变量n,给出循环得次数,比较n的值与1的大小关系。
  • 第三步:进入循环,比较min和count中更小的数字,再把小的数字存入min中,i加一,防止进入死循环。
  • 第四步:如果n小于1的话输入的count就为最小值,再把小的数字存入min中,输出最小值min。

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

  • 本题主要遇到的问题是第一次打代码的时候没有想到n=1的情况,所以只有部分正确,然后在提交过后题目给出的提示是没有考虑n=1的情况,所以我就在循环语句外面加了一个判断语句,最后输出了正确的结果。

4.本题PTA提交列表

题目4:

1.实验代码

int number,yournumber,i,N; //number表示系统随机产生数,yournummber表示猜的数,N控制循环次数
scanf("%d%d",&number,&N);
for(i=1;i<=N;i++){
scanf("%d",&yournumber);
if(yournumber<0) {printf("Game Over");break;}//判断输入数字的正负
else if(yournumber>number) printf("Too big ");
else if(yournumber<number) printf("Too small ");
else if(yournumbernumber&&i1) {printf("Bingo!");break;}
else if(yournumbernumber&&i>1&&i<=3) {printf("Lucky You!");break;}
else if(yournumber
number&&i>3) {printf("Good Guess!");break;}}
if(yournumber!=number&&i>N) printf("Game Over");
return 0;

2.设计思路

  • 第一步:定义变量 number,yournumber,i,N。
  • 第二步:输入变量number和N的值,number表示系统随机产生数,N控制循环次数。
  • 第三步:进入循环语句判断输入的数与系统随机产生数的大小,如果在第一次就猜中就输出Too big,在前三次猜中就输出Lucky You!,在规定次数内猜中就输出Good Guess!,如果太大就输出Too big,太小就输出Too small,在游戏次数超过或者输入超出范围就输出Game Over。

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

  • 本题所碰到的困难主要在Too big和Too small后面的“ ”换行符上,之前没有打入换行符一直都是部分正确,检查了很多遍也都没有发现错误的所在,然后在同学的指点下,改正了错误,他一下就找到了,是因为他和我的错误一样。

4.本题PTA提交列表

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

三、本周学习总结

1.你学会了什么?

  • 本周学会了蛮多东西的,学习了循环嵌套的语句,认识到了循环内还可以循环,感觉到了代码真的是一个非常神奇的东西,可以用一个简短的程序打出九九乘法表,杨辉三角;学会了如何用调试来检查自己的错误,并改正自己的错误,现在发现调试非常好用,特别是对于细节性的错误。

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

  • 循环嵌套语句,虽然是学了,但是还是带点朦胧感,有些题目很快就能解决,有些题目想了很久都无法解决,有前面的细节性的内容会忘记,简言之就是不熟,希望能忙完这一阵子,能真正的静下心来学习。

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

  • 对于上周的上机考试,我对自己的成绩是不满意的:
    • 第一:所有的题目没有全对,卡在最后一道题目上。
    • 第二:最后一道题目的错误在于scanf的输入格式没有和题目所给出的一样,检查了很久,又碍于自己能行的强大信念,一直卡了20分钟,直到下课铃响。
    • 第三:总而言之就是:不仔细,不细心;这总低级错误,我定要将它避免,深刻的体会到了细节决定成败!!!
  • 虽然一次考试不能代表什么,但是可以反映出我这段时间的学习情况,一般情况下都是对着书打代码,以至于我的细节上的漏洞在平时无法体现,到了考试就凸显,从考试后的每一次作业我都尽力去不借助书的帮助,自己打出正确的代码。
原文地址:https://www.cnblogs.com/bigll666/p/7766678.html