zoukankan      html  css  js  c++  java
  • 第八次作业

    7-3 将数组中的数逆序存放

     实验代码:

    #include <stdio.h>
    int main()
    {
        int i, n, h, a[10];
        scanf("%d", &n);
        for (i = 0; i < n; i++)
            scanf("%d", &a[i]);
        for (i = 0; i < n/2; i++)
        {
            h = a[i];
            a[i] = a[n-1-i];
            a[n-1-i] = h;
        }
        for (i = 0; i < n-1; i++)
            printf("%d ", a[i]);
        printf("%d
    ", a[n-1]);
        return 0;
    }

    设计思路:

    第一步:定义变量,按要求输入。根据题意判断只需判断数组中一半的数据即可得到结果。                                                

    第二步:定义变量h,将a[i]与a[n-1-i]进行交换。

    第三步:输出a[i]与a[n-1]。

    流程图:

     

    遇到的问题及解决方法:

     在交换中将数组中所有数进行了交换导致最后一位没有输出。

    提交列表:

    7-4 交换最小值和最大值:

    实验代码:

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

    设计思路:

    第一步:定义变量并赋予初值,输入。

    第二步:判断数组中的最小值赋给另一个变量并把它与第一个进行交换,同样找出最大值赋给其他变量并与最后的进行交换。

    第三步:输出。

    流程图:

     

    遇到的问题及解决方法:

     本题中所遇到的问题较多,第一次将题意理解错误将最大值与最小值进行了交换,后来没有考虑最大最小值位于数组首尾的情况,没有引入另两个存放的变量。

     提交列表:

    7-4 数组元素循环右移问题:

    实验代码:

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

    设计思路:

    第一步:定义并输入,先判断M与N之间的大小关系

    第二步:根据题意引入temp进行交换

    第三步:输出

    流程图:

     

    遇到的问题及解决方法:

     这道题我并不理解参考了其他答案。

    提交列表:

    我的git地址是:https://git.coding.net/zhouxuan12/123.git

    总结:这两周主要学习了数组,一维数组尚且理解,但对二维数组始终不太明白只能记着。

    表格 折线图 :

     

    点评:

    http://www.cnblogs.com/fengzx/p/7811151.html

    http://www.cnblogs.com/lixiaojing/p/7878001.html

    http://www.cnblogs.com/exo123/p/7954060.html

  • 相关阅读:
    IO多路复用
    事件驱动模型
    协程
    进程
    py2与py3的编码问题
    Linux Centos7 网卡无法启动
    监控的法则
    如何优雅的采集activeMQ性能指标
    一分钟性能分析
    beta版 tomcat 应用监控指标
  • 原文地址:https://www.cnblogs.com/zhouxuan99/p/7956246.html
Copyright © 2011-2022 走看看