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

一、PTA实验作业


题目1

1.实验代码

#include<stdio.h>
int main(void)
{
	int i,n;
	double man,women;
	char sex;
	scanf("%d\n",&n);
	for(i=1;i<=n;i++){
		scanf("%c",&sex);
		if(sex=='M'){
			scanf("%lf\n",&man);
			women=man/1.09;
			printf("%.2f\n",women);
		}
		if(sex=='F'){
			scanf("%lf\n",&women);
			man=women*1.09;
			printf("%.2f\n",man);
		}
	}
	return 0;
}

2 .设计思路

  • 第一步:定义两个整型变量i,n;定义两个双精度浮点型变量woman,man;定义字符型变量sex。
  • 第二步:进入循环结构,赋初值i=1,循环条件i<=N。
  • 第三步:输入性别。进行条件判断。
  • 第四步:如果输入性别为男,则woman=man/1.09;如果输入性别为女,则man=woman*1.09;并分别输出。
  • 第五步:如果满足i<=N重复第三步。直到不满足循环条件,程序结束。

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

问题1:定义woman与man为整型变量,造成结果错误。
改成双精度浮点型后正确。
问题2:if后面的语句没有用{}括起来,造成结果错误。
把if后所有语句用{}整合在一起。


4.本题PTA提交列表



题目2

1.实验代码

#include<stdio.h>
#include<math.h>
int main(void)
{
	int a,n,i,item,sum;
	scanf("%d %d",&a,&n);
	sum=0;
	item=0;
	for(i=1;i<=n;i++){
		item=item*10+a;
		sum=sum+item;
	}
	printf("s = %d",sum);
	return 0;
}

2 .设计思路

  • 第一步:定义4个整型变量a,n,i,item,sum;
  • 第二步:输入a,n;并对sum,item初赋值。
  • 第三步:进入循环i赋值为1,循环条件为i小于等于n,且i每次循环递增一。
  • 第四步:循环内容为item=item*10+a,并赋值sun=sum+item;
  • 第五步:如果满足i<=n重复第四步。直到不满足循环条件,程序结束。

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

问题:题目理解错误,把22弄成aa。
后面找出算式规律,利用item
10+a=22,把代码打正确。

4.本题PTA提交列表


题目3

1.实验代码

#include<stdio.h>
int main(void)
{
	int n,i,number,a,b;
	scanf("%d",&n);
	scanf("%d",&number);
	for(i=1;i<=n;i++){
		a=number;
		scanf("%d",&number);
		if(a<=number){
		b=a;
		number=a;}
		else
			b=n;
		continue;
	}
	printf("min = %d",b);
	return 0;
}


2 .设计思路

  • 第一步:定义五个整型变量n,i,number,a,b;
  • 第二步:输入数据个数n和第一个数据number。
  • 第三步:进入循环i赋初值1,循环条件i小于等于n,i每次循环递增一。将第一个数据number赋值给a。
  • 第四步:继续输入number,如果a小于此时的number,将a赋值于b,number。
  • 第五步:若num等于n,即为最后一次循环,则再次利用if语句判断min与最后一个数的大小。
  • 第六步:否则继续读入下一个数据。并利用if语句判断min,number的大小关系
  • 第七步:若min大于等于number,赋值min等于number.
  • 第八步:否则,min值不变继续读入下一个数据。
  • 第九步:重复第四五六七步骤。直到num大于n时结束循环。
  • 第十步:输出最小值。

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

问题1:
无法编译
解决方法:

不断调试,找到了错误。

4.本题PTA提交列表


题目4

1.实验代码

#include<stdio.h>
int main(void)
{
	int count=0,a,b,number;
	scanf("%d %d",&a,&b);
    do{
    	count++;
    	scanf("%d\n",&number);
    	if(number<0){
    	break;}
	else if(a<number){
	 printf("Too big\n");}
	else if(a>number){
	 printf("Too small\n");}
	 else
	 break;}
    while(number>0);
    if(number>=0){
     switch(count){
     	case 1 : printf("Bingo!"); break;
     	case 2 : 
     	case 3 : printf("Lucky You!"); break;
	 }
    }
	 if(count>3&&count<=b){
	 printf("Good Guess");}
	 else if(count>b){
	 printf("Game Over");}
	 else if(number<0){
	   printf("Game Over");
	 }
	 return 0;}

2 .设计思路

  • 第一步:定义4个整型变量a,b,count,number。
  • 第二步:输入随机数与规定次数。
  • 第三步:利用do while循环,每次输入次数count累加一,if语句判断每次a与number的大小关系。
  • 第四步:重复第三步,直至用户猜数小于0.结束循环。
  • 第五步:利用if语句以及switch语句判断当用户猜数大于等于0时,输入次数分别为1,2,3时分别输出的语句。
  • 第六步:利用if语句判断当输入次数大于3时的特殊情况。

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

问题:
我每次输入一个值,就会输出一个答案
解决方法:它用的是do-while,因为次数未知,是系统自己规定。判断结果,直接输出。

问题2:

4.本题PTA提交列表

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


三、本周学习总结

1.你学会了什么?

  • 一、循环语句
      1.while语句
      ①功能:实现当型循环结构。
      ②形式:while(表达式){ 
    循环体

    ③特点:先判断后执行。
    ④举例:(累加和问题)编程计算整数1~100的和。
    2.do-while语句
    ①功能:实现直到型循环结构。
      ②形式:do{ 循环体}
    while(表达式); //注意最后的分号
    ③特点:先执行后判断
    3.for语句
      ①功能:实现当型循环结构。
      ②形式:for(表达式1;表达式2;表达式3){ 循环体}
    ③特点:先判断后执行;使用频率最高
  • 二、break和continue语句
    1.break语句强制结束循环,可与if语句和switch语句配套使用。
    2.continue语句是跳过后面的语句继续循环,它只能用于循环语句。

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

  • 1.循环嵌套并不熟练,不会运用。
  • 2.不会运用调试找到问题,碰见代码错误,应对方法几乎没有。
  • 3.不会灵活运用continue和break语句。

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

感觉很多知识都是学会了,但是不会运用。学了循环忘了分支结构。很多题目做错了不会运用调试找到问题,所以题目错了就是错了。不过相对于上周起码会调试了,只是不知道运用调试找到代码错误,下周会在这方面下功夫。

四、上机考试总结

  上机考试之所以没有时间写完,除了平时练习量不够,最重要的是态度问题。没有把该记下来的东西记住。就是因为第一题记不住公式,脑子一直在回忆绝对值与log的数学函数怎么用C语言表达,直到老师提醒才写完第一题。而其他题目能够独立完成。但是最后一题还没写完代码,时间就不够了。回去写了一下最后一题,发现没有想象的简单,每次都是编译成功,但是结果都是错的,自己调试能力又很薄弱,一直找不到问题所在。后面记着老师在上机考试时提醒过空格也是字符,才知道越来空格把自己定义的字符替代了,所以结果一直都是错的。
  通过这次上机考试,认识到自己的不足,以及与其他同学的差距。自己也在反思,都是一起学习C语言,起跑线也一样,之所以被拉开差距是因为自己对于C语言的重视程度不够。如果一开始基础都没学好,那学习java也会十分吃力!
posted @ 2017-11-02 22:40  l杨发热  阅读(305)  评论(5编辑  收藏  举报