注册 登录
编程论坛 C++教室

数组问题

燕锋少龙 发布于 2011-10-15 20:18, 497 次点击
# include <stdio.h>
# define A 8
# define B 12
# define C 0//C的赋值和D的赋值,决定于要算从C到D之间的数组数!例如C=0,和D=7就是算8组数组的列之和!
# define D 7
int main(void)
{
    int i, j ,total;
    int arry[A][B] = {
        {3,1,0,0,0,1,0,0,0,0,2,0},
        {0,0,0,0,1,1,0,0,0,3,1,1},//  2  2  0  1  3  1  3  2  1  5  3  5
        {0,0,0,0,0,0,3,0,0,1,1,2},
        {0,1,0,1,2,0,0,1,0,1,1,0},
        {2,1,0,0,0,0,0,1,1,0,0,2},
        {1,1,0,1,0,1,1,0,1,1,0,0},
        {1,0,0,1,0,1,1,1,1,0,0,1},
        {1,0,0,0,3,0,1,0,1,0,1,0}
    };
       for(j = 0; j < B; ++j)
    {
        total = 0;
        for(i = C; i <= D; ++i)
        {
            total += arry[i][j];                        
        }
        
        printf("%3d", total);
        
    }
    putchar('\n');
   
    return 0;
}
//输出结果:
  8  4  0  3  6  4  6  3  4  6  6  6!
这俨然是个数组!怎么把这结果赋给数组,就是组成新的数组!并且能输出和运算!
3 回复
#2
nomify2011-10-15 22:32
程序代码:
# include <stdio.h>
# define A 8
# define B 12
# define C 0//C的赋值和D的赋值,决定于要算从C到D之间的数组数!例如C=0,和D=7就是算8组数组的列之和!
# define D 7
int main(void)
{
    int i, j ,total,output[B];
    int arry[A][B] = {
        {3,1,0,0,0,1,0,0,0,0,2,0},
        {0,0,0,0,1,1,0,0,0,3,1,1},//  2  2  0  1  3  1  3  2  1  5  3  5
        {0,0,0,0,0,0,3,0,0,1,1,2},
        {0,1,0,1,2,0,0,1,0,1,1,0},
        {2,1,0,0,0,0,0,1,1,0,0,2},
        {1,1,0,1,0,1,1,0,1,1,0,0},
        {1,0,0,1,0,1,1,1,1,0,0,1},
        {1,0,0,0,3,0,1,0,1,0,1,0}
    };
    for(j = 0; j < B; ++j)
    {
        total = 0;
        for(i = C; i <= D; ++i)
        {
            total += arry[i][j];                       
        }
        output[j] = total;
//        printf("%3d", total);
      
    }
    for(i=0;i!=B;++i)
        printf("%d ",output[i]);
    putchar('\n');
   
    return 0;
}
#3
jcw081201102011-10-16 10:45
hh
#4
monicamlg2011-10-16 12:36
# include <stdio.h>
# define A 8
# define B 12
# define C 0//C的赋值和D的赋值,决定于要算从C到D之间的数组数!例如C=0,和D=7就是算8组数组的列之和!
# define D 7
int main(void)
{
    int i, j ,total;
    int arry1[B];
    int arry[A][B] = {
        {3,1,0,0,0,1,0,0,0,0,2,0},
        {0,0,0,0,1,1,0,0,0,3,1,1},//  2  2  0  1  3  1  3  2  1  5  3  5
        {0,0,0,0,0,0,3,0,0,1,1,2},
        {0,1,0,1,2,0,0,1,0,1,1,0},
        {2,1,0,0,0,0,0,1,1,0,0,2},
        {1,1,0,1,0,1,1,0,1,1,0,0},
        {1,0,0,1,0,1,1,1,1,0,0,1},
        {1,0,0,0,3,0,1,0,1,0,1,0}
    };
       for(j = 0; j < B; ++j)
    {
        total = 0;
        for(i = C; i <= D; ++i)
        {
            total += arry[i][j];  
                                 
        }
        arry1[j]=total;   //比2楼的时间复杂度要小,少做了一次循环
        printf("%3d", arry1[j]);// arry1[] 便可以操作它了
        
    }
    putchar('\n');
   
    return 0;
}


[ 本帖最后由 monicamlg 于 2011-10-16 12:42 编辑 ]
1