| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1800 人关注过本帖
标题:二维数组输出
只看楼主 加入收藏
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
结帖率:70.59%
收藏
已结贴  问题点数:20 回复次数:5 
二维数组输出
程序代码:
#include<stdio.h>
int main()
{
    int a[4][4],i,j;
    for(i=0;i<4;i++)
    {
        printf("请输入第%d行数据\n",i+1);
        for(j=0;j<4;j++)
        {  
         
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            a[3-i][j]=a[i][j];
        }
    }

    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            printf("%3d",a[i][j]);
        }
        printf("\n");
    }
}

4*4二维数组
输入测试数据   1 2 3 4
           5 6 7 8
           9 10 11 12
         13 14 15 16
想要达到的效果
13 14 15 16
9 10 11 12
5 6 7 8
1 2 3 4
也就是说本来是第一行的数据,最后一行输出,
太久没碰了,都不会了,我自己尝试写了,不对,麻烦大家帮看看
2016-05-11 11:28
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:10 
直接打:
程序代码:
#include<stdio.h>
int main()
{
    int a[4][4], i, j;
    for (i = 0; i<4; i++)
    {
        printf("请输入第%d行数据\n", i + 1);
        for (j = 0; j<4; j++)
        {

            scanf("%d", &a[i][j]);
        }
    }
#if 0
    for (i = 0; i<4; i++)
    {
        for (j = 0; j<4; j++)
        {
            a[3 - i][j] = a[i][j];
        }
    }
#endif
    for (i = 3; i>=0; i--)
    {
        for (j = 0; j<4; j++)
        {
            printf("%3d", a[i][j]);
        }
        printf("\n");
    }
}



后者这样改
程序代码:
#include<stdio.h>
int main()
{
    int a[4][4], i, j,temp;
    for (i = 0; i<4; i++)
    {
        printf("请输入第%d行数据\n", i + 1);
        for (j = 0; j<4; j++)
        {

            scanf("%d", &a[i][j]);
        }
    }
    for (i = 0; i<2; i++)
    {
        for (j = 0; j<4; j++)
        {
            temp = a[3 - i][j];
            a[3 - i][j] = a[i][j];
            a[i][j] = temp;
        }
    }

    for (i = 0; i<4; i++)
    {
        for (j = 0; j<4; j++)
        {
            printf("%3d", a[i][j]);
        }
        printf("\n");
    }
}
2016-05-11 11:38
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
你的原因在于数据没有备份,a[3-i][j]=a[i][j];此种方法会让数据丢失。其实根本不需要改变数组本身,只要倒序输出就好。
程序代码:
for(i=3;i>=0;--i)
{
    for(j=0;j<=3;++j)
    {
        printf("%d ",a[i][j]);
    }
    printf("\n");
}

   唯实惟新 至诚致志
2016-05-11 11:39
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 3楼 qq1023569223
刚刚就这样做了。但是觉着就这样输出没意思,想换个方式,已经会了,3Q

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2016-05-11 11:46
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
收藏
得分:0 
回复 2楼 grmmylbs
受教,原来要交换啊,我以为直接赋值就行了,数据被覆盖了~一下子蒙了,3Q

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2016-05-11 11:48
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:0 
引入b[4][4],将重新排序的结果保存到b[4][4]中,
#include<stdio.h>
int main()
{
    int a[4][4],i,j,b[4][4];
    for(i=0;i<4;i++)
    {
        printf("请输入第%d行数据\n",i+1);
        for(j=0;j<4;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<4;i++)
     {
         for(j=0;j<4;j++)
         {
             b[3-i][j]=a[i][j];
         }
     }
     printf("\n");
     for(i=0;i<4;i++)
     {
         for(j=0;j<4;j++)
         {
             printf("%3d",b[i][j]);
         }
         printf("\n");
     }
}

早知做人那么辛苦!  当初不应该下凡
2016-09-26 22:14
快速回复:二维数组输出
数据加载中...
 
   



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

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