zoukankan      html  css  js  c++  java
  • 第14、15教学周作业

    14、15教学周作业

    要求一:完成14、15周的所有PTA中题目集。
    截图:

    要求二:

    数组元素循环右移问题

    #include<stdio.h>
    int main()
    {
    	int i,j,t,M,N;
    	scanf("%d %d",&N,&M);
    	int a[N];
    	for(i=0;i<N;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	for(j=0;j<M;j++)
    	{
    		t=a[N-1];
    		for(i=(N-1);i>=0;i--)
    		{
    			a[i]=a[i-1];
    			if(i==0)
    			{
    				a[0]=t;
    			}
    		}
    	}
    	for(i=0;i<N;i++)
    	{
    		if(i==0)
    		{
    			printf("%d",a[i]);
    		}else
    		{
    			printf(" %d",a[i]);
    		}
    	}
    }

      设计思路:

    1.输入N个数和右移动M位。

    2.定义数组a[N],计数i。用for循环语句输入数组a[i]。

    3.定义计数移动位数j等于0,用for循环语句(大循环)当移动一位时,令数组a[N]的最后一位数(N-1)等于t。再用for循环语句(小循环)从后往前把前一位数赋值给后一位数。

    4.当完成一次移位时,第一个数是空缺的,用if语句判断是否为第一个数(i=0),是就与t交换。判断j是否等于M,是就再循环,不是就结束。

    5.按照题意输出。

      流程图:

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

    当开始写的思路是直接移动M位,结果发生了错误,原因是这样写不知道哪个数在哪一个位置上。

    上网查了一下,改变了思路,换成一次只移动一位,因为是向右移动,所以最后一个数会被“挤”出去,第一个数有空缺,就拿一个变量把最后一个数“储存”起来,再放到第一个数的位置上去。答案正确。

    判断上三角矩阵

    #include<stdio.h>
    int main()
    {
        int T,n,i,j,t=0,sum=0;
        scanf("%d",&T);
        while(t<T)
        {
            t++;
            scanf("%d",&n);
            int a[n][n];
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    scanf("%d",&a[i][j]);
                }
            }
            for(i=0;i<n;i++)
            {
                for(j=0;j<i;j++)
                {
                   sum=sum+a[i][j];
                }
            }
            if(sum==0)
            {
                printf("YES");
            }else
            {
                printf("NO");
            }
            sum=0;
            if(t!=T)
            {
                printf("
    ");
            }
        }
     } 

      设计思路:

    1.定义正整数T(待测矩阵的个数),循环次数t,数组的行数n,列数n,计行数i,计列数j。输入n行n列的数组。

    2.用for循环语句,定义变量sum,把下三角的数相加。

    3.判断sum是否为0,是就输出YES,不是就输出NO。

    4.判断t是否等于T,是就结束,不是就继续循环。

      流程图:

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

    因为粗心,定义数组是将数组的列定义成了j,造成了多种错误,下次一定改正!

    改回来后答案正确.

    要求三:

      Git地址:https://coding.net/u/FENGZX/p/PTA/git

    要求四:

       个人总结:

    (1)①本周你学习了哪些内容?②收获了什么?

    本周学习了一维数组和二维数组,通过对二维数组的运算、变换,更加的理解了循环。

    (2)①本周所学内容中你觉得哪些是难点?②有哪些知识点还不明白?

    二维数组的运算对我来说有点困难,因为它不像一维数组,它有行和列,光是输入就用了两个循环,还是要多打打书上的例题,熟悉掌握二维数组。

    要求五:

       我点评的人:

    李晓静:http://www.cnblogs.com/lixiaojing/p/7878001.html

    董雅洁:http://www.cnblogs.com/exo123/p/7954060.html

    董欣:http://www.cnblogs.com/dx2017/p/7967269.html

       图表:

  • 相关阅读:
    FNV与FNV-1a Hash算法说明【转】
    FNV哈希算法【转】
    git超详细教程【转】
    Git基础篇【转】
    Notepad++中常用的插件【转】
    美化博客园界面(让您的博客更加赏心悦目)希望对您有用【转】
    scanf()总结--从网上收来的,感觉很好,用来提醒自己,c语言真是博大精深!!【转】
    机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】
    ROS学习网址【原创】
    机器人操作系统ROS Indigo 入门学习(1)——安装ROS Indigo【转】
  • 原文地址:https://www.cnblogs.com/fengzx/p/7955263.html
Copyright © 2011-2022 走看看