zoukankan      html  css  js  c++  java
  • C语言博客作业02--循环结构

    0.展示PTA总分

    单循环结构

    嵌套循环

    1.本章学习总结

    1.1 学习内容总结

    1. for语句

        for语句中的fahr++相当于fahr=fahr+1。
        for(表达式1;表达式2;表达式3)
              循环体语句
        例:
       
            for (i = 1; i <= n; i++)
    {
    	number = number * 10 + a;
    	sum = sum + number;
    }
    

    2. while语句

          1. 一般形式:
              while (表达式)
                     循环体语句;
              注:表达式为真,循环执行;直到表达式为假,循环中止并继续执行while下一条语句。
              例:
        while (N != 0)
    {
    	scanf("%d", &N);
    	if (N > 0)
    	{
    		i++;
    	}
    	else if (N < 0)
    	{
    		j++;
    	}
    }
          2. for语句改为while语句
               表达式1;
                while (表达式2){
                        for的循环体语句;
                        表达式3;
                }
                例:
                     i=1;
                     while(i<=n){
                            number = number * 10 + a;
    	            sum = sum + number;
                            i++;
                    }
    

    3. do-while语句

            一般形式:
                            do {
                                    循环体语句
                            } while (表达式);
            例:
                do
      {
    	scanf("%d", &yournumber);
    	count++;
    	if (yournumber < 0)
    	{
    		printf("Game Over
    ");
    		flag = 1;
    	}
    	else if (yournumber > mynumber)
    	{
    		printf("Too big
    ");
    		
    	}
    	else if (yournumber < mynumber)
    	{
    		printf("Too small
    ");
    	}
    	else
    	{
    		if (count == 1)
    		{
    			printf("Bingo!");
    		}
    		else if (count <= 3)
    		{
    			printf("Lucky You!
    ");
    		}
    		else
    		{
    			printf("Good Guess!
    ");
    		}
    		flag = 1;
    	}
    	if (count == N)
    	{
    		if (!flag)
    		{
    			printf("Game Over
    ");
    			flag = 1;
    		}
    	}
    
      }
    
      while (!flag);
    

    4. for,while,do-while语句的不同

            for语句和while语句都是在循环前先判断条件,条件满足才会进入循环。
            do-while语句先执行循环体,后判断循环条件。无论循环条件的值如何,至少会执行一次循环体。
    

    5. break语句和continue语句

    1. break语句

             break语句气质循环结束。一旦执行了break语句,循环提前结束,不在执行循环体中位于其后的其他语句。
             例:
                 while (op != '=')
        {
    	scanf("%c", &op);
    	if (op == '=')
    	{
    		break;
    	}
            }
    

    2. continue语句

             continue语句的作用是跳出循环体中continue后面的语句,继续下一次循环。
             例:
                 for(i=0;i<100;i++)
              {
                          if(i>j) continue;
                                    j=i;
              }
    

    3. break语句和continue语句的区别

             break结束循环,而continue只是跳过后面语句继续循环。
             break除了可以中止循环外,还用于switch语句,而continue只能用于循环。
    

    6. 嵌套循环

           在一个循环体语句中又包含另一个循环语句,大循环中嵌套了小循环。
            例:
                for (fen5 = money / 5; fen5 > 0; fen5--)
    {
    	for (fen2 = money / 2; fen2 > 0; fen2--)
    	{
    		for (fen1 = money; fen1 > 0; fen1--)
    		{
    			if (fen5*5 + fen2*2 + fen1 == money)
    			{
    				total = fen5 + fen2 + fen1;
    				count++;
    				printf("fen5:%d, fen2:%d, fen1:%d, total:%d
    ", fen5, fen2, fen1, total);
    			}
    		}
    	}
    }
    

    1.2 本章学习体会

    上课所讲的知识越来越多,感觉讲的有那么一点快!

    作业越来越多,不会做的越来越多,感觉有点跟不上,可能是代码量不够。

    代码量:960行

    2.PTA实验作业

    2.1 水仙花数

    2.1.1 伪代码

                定义一个变量n放整数位数。变量i放整数。
                定义变量x放位。变量y放取位之后的数。变量sum放计算结果。自己造一个pow函数。
                while(判断几位数)
                {
                    for(在几位整数范围内输入所有整数)
                    {
                            while()
                               {
                                  取个位:  x = y % 10;
    			计算每位的n次幂之和:sum = sum + pow(x, n);
    			取位之后的数:y = y / 10;
                                }
                                if(满足水仙花数)输出;
                    }
                 }
    

    2.1.2 代码截图

    2.1.3 造测试数据

    输入数据 输出数据 说明
    3 最小数据
    5 548834 正常数据
    7 最大数据

    2.1.4 PTA提交列表及说明


    提交列表说明:
    1.多种错误:当n=7时运行超时和if语句判断时等于条件写错。
    2.部分正确:当n=7时运行超时。
    3.答案正确:自己造一个pow函数计算。

    2.2 梅森数

    2.2.1 伪代码

                定义变量n存放正整数。定义变量sum存放计算结果。
                定义变量flag为判断条件。
                for(i=2;i<=n;i++)
                {
                计算最大值:sum=pow(2,i)-1;
                     for()
                        {
                             判断sum是不是素数,是,则flag==0
                        }
                        if(flag==0)输出sum;
                }
    

    2.2.2 代码截图


    2.2.3 造测试数据

    输入数据 输出数据 说明
    6 正常数据
    21 无数据输出 超出测试范围
    1 最小数据

    2.2.4 PTA提交列表及说明


    提交列表说明:
    1.部分正确:没有考虑n1的情况。
    2.部分正确:最后一个if判断语句写错,写成了flag
    1。
    3.答案正确:解决了上两个问题。

    2.3 满足3025=30+25和的平方的四位数

    2.3.1 伪代码

                定义变量number存放所有的四位整数。
                定义变量front存放前两位数;变量behind存放后两位数。
                for(依次判断每个四位数)
                {
                    取前两位:front = number / 100;
                    取后两位:behind = number - front * 100;
                    if(判断是否满足)满足则输出;
                }
    

    2.3.2 代码截图

    2.3.3 造测试数据

    输入数据 输出数据 说明
    所有满足的四位数

    2.3.4 PTA提交列表及说明


    提交列表说明:
    1.格式错误:输出数字前面少了空格。
    2.答案正确:%d前面加个空格。

    3.代码互评

       同学代码截图
    


    自己代码截图


    评价:
    1.同学代码有注释,而我的没有;
    2.同学代码用do-while语句解决了运行超时的问题,比我的自己造一个pow函数感觉更好一点。
    同学代码截图


    自己代码截图


    评价:
    1.同学代码调用了一个函数,使整个结构看起来清爽不少;
    2.我的代码只利用了循环结构,读起来不是很清晰。

  • 相关阅读:
    3. Image Structure and Generation
    STM32F103
    10.2 External interrupt/event controller (EXTI)
    10.1 Nested vectored interrupt controller (NVIC) 嵌套矢量中断控制器
    ibatis 使用 in 查询的几种XML写法
    文字纵向打印
    oracle每天清理归档日志
    使用语句查询mssql死锁
    Xml序列化UTF-8格式错误
    Nginx的优点
  • 原文地址:https://www.cnblogs.com/201218zx/p/11706377.html
Copyright © 2011-2022 走看看