| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3172 人关注过本帖
标题:方阵循环右移,将a数组每个元素向右移动一列,最后一列换到第一列
只看楼主 加入收藏
a250026320
Rank: 2
等 级:论坛游民
帖 子:25
专家分:20
注 册:2017-10-16
结帖率:40%
收藏
已结贴  问题点数:15 回复次数:1 
方阵循环右移,将a数组每个元素向右移动一列,最后一列换到第一列

#include<stdio.h>
int main()
{
    int a[6][6],b[6][6],i,j,m,n;
   
    printf("Input m,n:");
    scanf("%d%d",&m,&n);
    printf("Input array :\n");
    for(i=0;i<m;i++)
       for(j=0;j<n;j++)
           scanf("%d",&a[i][j]);
    for(i=0;i<m;i++)
       for(j=0;j<n;j++)
             scanf("%d",&b[i][j]);
    for(i=0;i<m;i++)
            b[i][0]=a[i][n];
    for(i=0;i<m;i++)
            b[i][n-1]=a[i][0];
    printf("New array:\n");
    for(i=0;i<m;i++)
        for(j=0;j<n;j++){
           printf("%4d",b[i][j]);
           printf("\n");
    }   
    return 0;                           
 }
搜索更多相关主题的帖子: 右移 一列 printf for i++ 
2017-11-12 22:16
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10568
专家分:43031
注 册:2014-5-20
收藏
得分:15 
是不是这样:
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>

void swap(int *a, int m, int n)
{
    int *h, i, j;
    for (i=0; i<m; ++i)
    {
        h = a+i*n;
        for (j=n-1; j>0; --j)
        {
            *(h+j) ^= *(h+j-1);
            *(h+j-1) ^= *(h+j);
            *(h+j) ^= *(h+j-1);
        }
    }
}

void prn(int *a, int m, int n)
{
    int *h, i, j;
    for (i=0; i<m; ++i)
    {
        h = a+i*n;
        for (j=0; j<n; ++j)
            printf("%3d", *(h+j));
        printf("\n");
    }
    printf("\n");
}

main()
{
    int m=3, n=4;   //输入m,n(略)
    int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};   //输入数组a(略)
    prn(*a, m, n);
    swap(*a, m, n);
    prn(*a, m, n);
}
2017-11-13 06:33
快速回复:方阵循环右移,将a数组每个元素向右移动一列,最后一列换到第一列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024148 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved