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\n", 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\t",&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

 posted on 2017-12-04 07:29  周璇A  阅读(223)  评论(0编辑  收藏  举报