凉城有梦

导航

 

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\n");
		flag = 1;
	}
	else if (yournumber > mynumber)
	{
		printf("Too big\n");
		
	}
	else if (yournumber < mynumber)
	{
		printf("Too small\n");
	}
	else
	{
		if (count == 1)
		{
			printf("Bingo!");
		}
		else if (count <= 3)
		{
			printf("Lucky You!\n");
		}
		else
		{
			printf("Good Guess!\n");
		}
		flag = 1;
	}
	if (count == N)
	{
		if (!flag)
		{
			printf("Game Over\n");
			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\n", 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.我的代码只利用了循环结构,读起来不是很清晰。

posted on 2019-10-20 21:41  凉城有梦  阅读(434)  评论(2编辑  收藏  举报