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

一、PTA实验作业

题目1

1.代码

    int n;
    char sex;
    float height;
    scanf("%d",&n);
    for (int i=0;i<n;i++) {
        scanf("\n%c %f",&sex,&height);
        if (sex=='M')
            printf("%.2f\n",height*1.0/1.09);
        else if(sex=='F') 
            printf("%.2f\n",height*1.09);
        else 
           printf("error\n");
    }

2.设计思路

  • (1)定义一个整型变量n代表查询的用户数,定义一个字符型变量sex代表用户性别,定义一个浮点型变量height代表用户身高。
  • (2)输入查询用户数n。
  • (3)输入用户性别sex,身高height。
  • (4)若sex=='M',则输出height*1.0/1.09(保留两位小数)。
  • (5)若sex=='F',则输出height*1.09(保留两位小数)。
  • (6)若输入的sex为非法字符,则输出error。
  • (7)i=i+1。
  • (8)重复步骤三,直到i>n时,结束循环。

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

  • (1)无。

4.本题PTA实验结果

贴图展示。如图:

题目2

1.代码

    int a,n,i,s,item;
    scanf("%d %d",&a, &n);
    s=0;
    item=a;
    for(i=1;i<=n;i++){
    	s=s+item;
    	item=item*10+a;
	}
    printf("s = %d",s);

2.设计思路

  • (1)定义五个整数型变量a代表不超过9的正整数,i代表环境变量,n代表a的最大个数,item代表第i项的特殊a串数列,sum代表特殊a串数列的和。
  • (2)输入整数a,n。
  • (3)s=0,item=a。
  • (4)累加s,s=s+item。
  • (5)计算第i项的item,item=item*10+a。
  • (6)i++。
  • (7)重复步骤4,直到i>n,结束循环。
  • (8)输出s。

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

  • (1)item的表达错误,结果格式错误。
  • 解决办法:修改计算方法。



4.本题PTA实验结果

贴图展示。如图:

题目3

1.代码

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

2.设计思路

  • (1)定义四个整型变量n代表输入数据的数量,number代表输入的数据,i代表环境变量,min代表最小值。
  • (2)输入整数n。
  • (3)若n=1,则直接输出number。
  • (4)若n>1,则输入number。
  • (5)若number<min,则将number的值赋予min。
  • (6)若number>min,则不执行。
  • (7)i++.
  • (8)重复步骤4,直到i>n,结束循环。
  • (9)输出min。

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

  • (1)没有考虑n为1的情况。
  • 解决方法:通过pta的问题分析补善代码。


4.本题PTA实验结果

贴图展示。如图:

题目4.

1.代码

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

2.设计思路

  • (1)定义四个整型变量result代表随机数,times代表猜的最大次数,i代表环境变量,guess代表猜的数。
  • (2)输入正整数result,times。
  • (3)输入guess。
  • (4)若guess<0,i=items+1,跳出循环。
  • (5)若guess<result,则输出Too small。
  • (6)若guess>result,则输出Too big。
  • (7)若guess=result,则跳出循环。
  • (8)i++。
  • (9)重复步骤4,直到i>times,结束循环。
  • (10)若i=1,则输出Bingo!
  • (11)若1<i<=3,则输出Lucky You!
  • (12)若3<i<=times,则输出Good Guess!
  • (13)若i为其他则输出Game Over。

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

  • (1)没有看清题目要求,在输入负数时直接退出。
  • 解决方法:对输入的guess进行判断,若不符合则直接Game over。

4.本题PTA实验结果

贴图展示。如图:

二、截图本周题目集的PTA提交列表及最后排名。

PTA提交列表

PTA排名

三、本周学习总结

1.你学会了什么?

  • (1)学会了while,for,do-while几种循环结构的基本使用。
  • (2)学会了如何选择恰当的循环结构敲写代码。
  • (3)懂得了scanf语句输入时的一些注意点。
  • (4)利用flag来进行变化。

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

  • (1)循环结构较为繁琐,容易犯错且代码有时较为繁琐。
  • (2)结构使用不够灵活。

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

  • 在考试时因为对switch结构的使用不够熟练,导致一些语法忘记,所以平时应该将各种结构都掌握并且熟练使用,而不是单一的使用一种结构。
原文地址:https://www.cnblogs.com/oracler0103/p/7772552.html