注册 登录
编程论坛 C语言论坛

第一次会玩二维数组~~!!

洪荒 发布于 2020-12-25 21:43, 2134 次点击

#include<stdio.h>

int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,n;
void fun(int d[3][3])
{
    int b[3][3];
    int c[3][3];
    for(i=0;i<=2;++i){
       for(n=0;n<=2;++n){

        b[n][i]=d[i][n];
        c[n][i]=d[n][i]+b[n][i];

        printf("%d ",c[n][i]);
       }

    }
}


int main ()
{
    fun(a);

    return 0;
}
9 回复
#2
do8do8do82020-12-25 23:11
全世界的娘妈为你点赞
#3
风过无痕19892020-12-25 23:12
回复 楼主 洪荒
程序没有问题呀,将二维数组行、列倒置以后再与二维数组相加
程序代码:

#include<stdio.h>

int a[3][3] = { 1,2,3,4,5,6,7,8,9 };
int i, n;
void fun(int d[3][3])
{
    int b[3][3];
    int c[3][3];
    for (i = 0;i <= 2;++i)
    {
        for (n = 0;n <= 2;++n)
        {
            b[n][i] = d[i][n];
            c[n][i] = d[n][i] + b[n][i];
        }
    }
    for (i = 0;i <= 2;++i)
    {
        for (n = 0;n <= 2;++n)
        {
            printf("%2d ", d[i][n]);
        }
        printf("\n");
    }
    printf("\n");

    for (i = 0;i <= 2;++i)
    {
        for (n = 0;n <= 2;++n)
        {
            printf("%2d ", b[i][n]);
        }
        printf("\n");
    }
    printf("\n");

    for (i = 0;i <= 2;++i)
    {
        for (n = 0;n <= 2;++n)
        {
            printf("%2d ", c[i][n]);
        }
        printf("\n");
    }
    printf("\n");
}


int main()
{
    fun(a);

    return 0;
}
#4
洪荒2020-12-25 23:27
回复 3楼 风过无痕1989
我厉害吧
#5
风过无痕19892020-12-26 19:09
回复 4楼 洪荒
厉害!
注意结帐哟~~
#6
洪荒2020-12-26 19:30
回复 5楼 风过无痕1989
直接送您三千万
.
.
.
.
.
.
.
.
.
.
.
.
千万要开心
千万要幸福
千万要平安
#7
请输入密码2020-12-26 19:59
二维数组一点都不好玩好不好~~~

程序代码:
#include<stdio.h>

int main( void )
{
    const int a[3][3] =
    {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
   
    size_t i,j;
   
    for ( i = 0; i != 3; ++i )
        for ( j = 0; j != 3; ++j )
        {            
            int b[4];
            int sum;
            
            size_t k;
            
            b[0] = i[a][j];
            b[1] = j[i[a]];
            b[2] = i[j[a]];
            b[3] = j[a[i]];
            
            for ( sum = k = 0; k != sizeof (b)/sizeof (*b); ++k )
                sum += b[k];
            
            printf( "%-4d%c",sum,"\n"[ j != 2 ] );
        }
        
    return 0;            
}



[此贴子已经被作者于2020-12-26 20:05编辑过]

#8
do8do8do82020-12-26 20:33
两种思维
c 语言                                  lisp语言
#include<stdio.h>                     (defvar arrA nil)                                       
int a[3][3]={1,2,3,                   (defvar arrB nil)
             4,5,6,                   (defvar arrC nil)
             7,8,9};                  (setf arrA  #2a((1 2 3) (4 5 6) (7 8 9)))
int i,n;                              (setf arrB (make-array '(3 3) :initial-element nil))
void fun(int d[3][3])                 (setf arrC (make-array '(3 3) :initial-element nil))
{                                     (do ((i 0 (+ i 1)))
    int b[3][3];                            ((> i 2) 'outside)
    int c[3][3];                            ( do ((n 0 (+ n 1)))
    for(i=0;i<=2;++i){                            ((> n 2) 'outside)
       for(n=0;n<=2;++n){                         (setf (aref arrB n i) (aref arrA i n))
                                                  (setf (aref arrC n i) (+ (aref arrA n i) (aref arrB n i)))
        b[n][i]=d[i][n];                          (format t "~d " (aref arrC n i))))
        c[n][i]=d[n][i]+b[n][i];            
                                                
        printf("%d ",c[n][i]);                  
       }                                                                        
    }                              
}                                         
int main ()
{
    fun(a);  
   return 0;
}
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-12-26 23:53编辑过]

#9
风过无痕19892020-12-26 22:47
回复 6楼 洪荒
上面回复错了,五笔的重复词,正确的是:注意结帖,因为这个论坛有结帖率,你的结帖率过低,以后的求助可能会有问题
#10
洪荒2021-01-01 15:14
回复 9楼 风过无痕1989
谢谢提醒!
1