码迷,mamicode.com
首页 > 其他好文 > 详细

第14、15教学周作业

时间:2017-12-03 22:54:53      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:选择   for   ret   pre   std   出现   判断   col   数列   

要求二:

第14周第一次作业:7-3将数组中的数逆序存放:

1.实验代码:

#include<stdio.h>

int main()
{
    int i, n, swap, a[10];
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    for (i = 0; i < n/2 ;i++)
    {
        swap = a[i];
        a[i] =a[n-1-i];
        a[n-1-i] = swap;
    }
    for (i = 0; i < n-1; i++)
        printf("%d ", a[i]);
    printf("%d\n", a[n-1]);
    return 0;
}

2.设计思路:(1)第一步:引入数组啊a[n],以及循环增量i,数组存放的个数n和交换变量swap;

                           第二步:给这个数组赋值;

                           第三步:利用交换变量swap进行交换;

                           第四步:输出结果;

                   (2)流程图:

技术分享图片

 

3.遇到的问题:①起初在这个问题上在编译上没有问题,只是在格式上出现问题,即对行末不出现空格的输出不会,导致出现错误。

技术分享图片

解决方法:我是通过上网百度找到的解决方法,通过先按如上的样式输出从i=0到i=n-2,在单个的输出i=n-1是的值;

7-4 fibonacci数列:

1.实验代码:

#include <stdio.h>
int main()
{  
    int i;
    int f[12] = {1, 1};   

    for ( i = 2; i < 12; i++ ) 
    {
        f[i] = f[i - 1] + f[i - 2];
    }         

    for ( i = 0; i < 12; i++ ){ 
        printf ( "%6d", f[i] );
        if ( (i + 1) % 3 == 0 )      
        {
            printf("\n"); 
        }
             
     }
    return 0;
}    

2.设计思路:(1)第一步:首先引入数组f[12],循环增量i,并赋给数组f[12]的前两个值为1;

                           第二步:根据题意来求新的数组;

                           第三步:输出这个新数组;

(2)流程图:

技术分享图片

3.遇到的问题:①本题老师上课讲过,本题也不是不会编程,就是提交的时候有格式错误,之后按照老师给的原代码打也是出现格式错误;

技术分享图片

解决办法:先把老师的原代码直接复制粘贴在Dev-C++上,之后再根据题目要求进行修改才解决;

 第15周第一次PTA作业 7-4数组元素循环右移问题:

1.实验代码:

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

2.设计思路:(1)第一步:首先先定义一个数组a[N],以及循环增量i和要输入的格式n和m;

                           第二步:根据题意先给这个数组赋值;

                           第三步:根据题意要使数组的元素右移,首先要分情况讨论来判断元素右移的个数,并注意结尾不能出现空格的情况;

                          第四步:以此由不同的情况来输出结果;

(2)流程图:

      技术分享图片

技术分享图片

注:因流程图太大,一个屏截不下来,所以我就截了两个屏,有点错位,望老师见谅!

3.遇到的问题:①考虑问题不全面,导致提交总是部分错误;由截图可看出我起初只是考虑了m<n的一种情况;

错误代码截图:

技术分享图片

 

解决办法:①通过上网查了这个题的答案,从网上的各位大佬的答案来看我深刻的理解了这个题的题意,之后多加了几种情况就解决了问题,虽然代码很长,不想网上的大佬的那样简短,但我觉得我的还是简单易懂的;

 要求三:

上传Git截图:技术分享图片

 

Git地址:https://git.coding.net/GBL/ZY.git

要求四:

(1)学到的内容:本周我学到了数组的一些规律;例如:冒泡排序,选择法排序,还有一些数组的简单赋值;

(2)难点:数组的冒泡排序、选择法排序的控制条件有时不能很快的想出,还有一些PTA上的结尾不出现空格,以及换行的要求等等都不太熟;

 要求五:

1.点评的三位同学:

邀请点评的三位同学:

2.本周的学习进度:

技术分享图片

技术分享图片

 

第14、15教学周作业

标签:选择   for   ret   pre   std   出现   判断   col   数列   

原文地址:http://www.cnblogs.com/gao628526/p/7931800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!