| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1030 人关注过本帖
标题:请帮忙看一看
只看楼主 加入收藏
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
结帖率:100%
收藏
 问题点数:0 回复次数:16 
请帮忙看一看
#include<stdio.h>
#include <iostream>
#include <string.h>

#define M 2                           
#define N 2                        
 
template<typename T>
void print(T a,int m, int n)
{  

    printf("c[%d][%d] is: \n", M, N);

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

   printf("\n"); }
}
}
         
void main()
{
  int a[2]={-1,-1};
  int b[2]={-1,1};   
  int c[2]={1,-1};   
  int d[2]={1,1};         
int k;
int f[2][2];     
    for(k=0;k<2;k++)
    {f[0][k]=a[k];
    f[1][k]=a[k];}
     print( f,M, N);
for( k=0;k<2;k++)
    {f[0][k]=a[k];
    f[1][k]=b[k];}
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=a[k];
    f[1][k]=c[k];}
   
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=a[k];

    f[1][k]=d[k];}
   
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=b[k];

    f[1][k]=a[k];}
   
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=b[k];

    f[1][k]=b[k];}
   
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=b[k];

    f[1][k]=c[k];}
   
         print( f,M, N);
         for( k=0;k<2;k++)
    {f[0][k]=b[k];

    f[1][k]=d[k];}
   
         print( f,M, N);
    for( k=0;k<2;k++)
    {f[0][k]=c[k];

    f[1][k]=a[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=c[k];

    f[1][k]=b[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=c[k];

    f[1][k]=c[k];}
   
         print( f,M, N);



         for( k=0;k<2;k++)
    {f[0][k]=c[k];

    f[1][k]=d[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=d[k];

    f[1][k]=a[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=d[k];

    f[1][k]=b[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=d[k];

    f[1][k]=c[k];}
   
         print( f,M, N);for( k=0;k<2;k++)
    {f[0][k]=d[k];

    f[1][k]=d[k];}
   
         print( f,M, N);
}
我现在想把程序简洁化,怎么用指针循环简化,同时我还想把这16个二维数组存入一个空间,以便调用任意的一个二维数组,请大家帮帮忙,我很困扰,不知道怎么解决,希望大神们尽快给回复,谢谢大家啦!

[ 本帖最后由 风的飞扬0102 于 2014-4-22 16:30 编辑 ]
搜索更多相关主题的帖子: include 
2014-04-22 15:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
1、你没有说出你代码的功能
2、你的代码有些长
3、你的代码究竟是想用c来实现呢  还是想用c++呢

DO IT YOURSELF !
2014-04-22 15:59
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 2 楼 wp231957
我的代码想输出16个二维数组,数组中的元素只有1和-1,16个二维数组包含2*2阶矩阵的所有情况,保存在一个空间内,最好是用c语言实现。
2014-04-22 16:24
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我不太明白你的意思
1和-1不就有四种形态吗  你的16个是什么意思

DO IT YOURSELF !
2014-04-22 20:48
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 4 楼 wp231957
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-04-22 21:22
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
我只截了一部分,例如这样,一共有十六种情况
2014-04-22 21:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
程序代码:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
/*
* 加1后进位操作 
* 用字符串模拟数字的进位操作
*/
void add_one(int *array, int array_len, int radio, int *flow)
{
        int i;
        for ( i=array_len-1; i>=0; i-- )
        {
                array[i] += 1;
                //没有进位就退出
                if (array[i] < radio) return; else array[i] = 0;                        
        }
        // 最高位溢出 - 标志进位操作已经结束
        (*flow) = 1;
}

/*
* 获取全排列 
*/
int get_pailie(int set[], int set_len, int sub_len, int out_len)
{
        int  end_flag = 0;
        int *array    = NULL;
        int  i = 0;
        if ( NULL==set || out_len<sub_len ) return -1;
        if ( (array=(int *)malloc(sub_len * sizeof(int))) == NULL ) return -2;
        // 初始化整数集合为0
        for( i=0; i<sub_len; i++ )  array[i] = 0;
        while( 1 != end_flag )
        {
                for(i=0; i<sub_len; i++) printf("%4d", set[array[i]]);// 输出结果的每一位与它对应的数的每一位相同
                printf("\n");
                // 下标+1
                add_one(array, sub_len, set_len, &end_flag);
        }
        free(array);
        return 0;
}



int main()
{
    int   set[]={1,-1};
    int   set_len = 2;
    int   sub_len = 4;
    get_pailie(set, set_len, sub_len,sub_len);
    return 0;
}


运行结果如下:

  1   1   1   1
  1   1   1  -1
  1   1  -1   1
  1   1  -1  -1
  1  -1   1   1
  1  -1   1  -1
  1  -1  -1   1
  1  -1  -1  -1
 -1   1   1   1
 -1   1   1  -1
 -1   1  -1   1
 -1   1  -1  -1
 -1  -1   1   1
 -1  -1   1  -1
 -1  -1  -1   1
 -1  -1  -1  -1

DO IT YOURSELF !
2014-04-23 08:29
yejiangnan
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2014-4-23
收藏
得分:0 
回复 楼主 风的飞扬 0102
问题解决了吗?
2014-04-23 12:17
鸥翔鱼游
Rank: 5Rank: 5
等 级:职业侠客
帖 子:182
专家分:323
注 册:2014-4-19
收藏
得分:0 
学习学习~~~偷师本学徒来偷偷~~~
2014-04-23 12:52
风的飞扬0102
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-4-22
收藏
得分:0 
回复 7 楼 wp231957
谢谢了!不过我想问下我怎么调用这些数组呀,因为我还需要把这些数组两两结合算他们的自相关函数,我需要把他们存在一个空间里,然后分别调用运算。麻烦啦,如果有时间的话,帮我想想吧,谢谢了!
2014-04-23 19:45
快速回复:请帮忙看一看
数据加载中...
 
   



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

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