| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 899 人关注过本帖
标题:程序何处有问题,该怎么修改,求教各位大神们。
只看楼主 加入收藏
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
结帖率:93.33%
收藏
已结贴  问题点数:10 回复次数:9 
程序何处有问题,该怎么修改,求教各位大神们。
这段代码有问题,我想了好久,也不知是哪行有问题,请教各位啦!!请问该怎么改?
#include<stdio.h>
#include <stdlib.h>
static void _fun( int,int,int** );
void print(FILE *fp, const int a[][7][7] );
int main()
{
    int i,j;
    int a[27][7][7];//E
    int* p=NULL;
    FILE *fp;
    if ((fp = fopen ("D:\\数组.txt", "a+")) == NULL)
    {
        printf("打开文件失败\n");
        exit(1);
    }
    for (i=0;i!=27;++i)//F
    {
        p=a[i][1];
        {
            for (j=1;j!=8;++j)//G
                a[i][0][j-1]=j;
        }
        _fun(i,~1,&p);
        _fun(i,1,&p);
    }
    print(fp, a);
    fclose(fp);
    return 0;
}
static void _fun( int k,int n,int** p )
{
    if (n>0)
        _fun(k/3,n-1,p);
    {
        int i=9;  //H     
        while (--i)
        {
            **p=k%3;
            ++*p;
        }
    }
    if (n<0)
        _fun(k/3,n+1,p);
}
void print(FILE *fp, const int a[][7][7] )//I
{
    int i;
    for (i=0;i!=27;++i)//J
    {
        int j;
        fprintf(fp,"i = %d\n",i);
        for (j=0;j!=7;++j)//K
        {
            int k;
            for (k=0;k!=7;++k)//L
                fprintf(fp,"%-4d",a[i][j][k]);
            fprintf(fp,"\n");
        }
        fprintf(fp,"\n");
    }
}
要求:运行后要达到这样的效果:
i = 0
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0

i = 1
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
1   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1

i = 2
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2  

i = 3
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0

i = 4
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   

i = 5
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2

i = 6
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   

i = 7
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   

i = 8
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2

i = 9
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   

i = 10
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1

i = 11
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2

i = 12
1   2   3   4   5   6   7   
0   0   0   0   0   0   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   
0   0   0   0   0   0   0  

i = 13
1   2   3   4   5   6   7   
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

i = 14
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
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   
2   2   2   2   2   2   2  

i = 15
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2  
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0

i = 16
1   2   3   4   5   6   7   
1   1   1   1   1   1   1  
2   2   2   2   2   2   2  
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1  

i = 17
1   2   3   4   5   6   7   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2  
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2

i = 18
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0

i = 19
1   2   3   4   5   6   7   
1   1   1   1   1   1   1  
0   0   0   0   0   0   0   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1

i = 20
1   2   3   4   5   6   7   
2   2   2   2   2   2   2  
0   0   0   0   0   0   0   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2

i = 21
1   2   3   4   5   6   7   
0   0   0   0   0   0   0  
1   1   1   1   1   1   1   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0

i = 22
1   2   3   4   5   6   7   
1   1   1   1   1   1   1  
1   1   1   1   1   1   1   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1


i = 23
1   2   3   4   5   6   7   
2   2   2   2   2   2   2
1   1   1   1   1   1   1   
2   2   2   2   2   2   2  
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2

i = 24
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0

i = 25
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1

i = 26
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2

搜索更多相关主题的帖子: void int print for fprintf 
2018-04-21 16:17
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:0 
好像之前有个一样的帖子吧
2018-04-21 16:35
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
就是我的,那个帖子是编写[6][6]的数组群,我想用它来改写为[7][7]的数组群,改到这里了,就不会了。我是用它来研究数学用的。说实在的,我工作之余,就想自学下编程,在网上自学的慢,没办法,只好这样,请教了。
2018-04-21 16:44
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 楼主 自学的数学
int i=9;  //H

这里9是怎么得到的,7*7应该对应8才是,就这里改改再试试看~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-21 19:24
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
回复 4楼 九转星河
    int i=8;
效果如下:
i = 0
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2681888268158819997724173276984327680040962681608

i = 1
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
2681852199968510932769843276800199968520319977243513276801

i = 2
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
19997728851997718239268408061166268427236  1   

i = 3
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
7536759753673275367616619252334244560293626815866

i = 4
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
1   1   1   1   1   1   1   
0   3407877826825160   0   0   3   

i = 5
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
6619252334244560293627995508661925030147717077988

i = 6
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
0   0   0   150994953683659215435039640   

i = 7
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
1   1   1   1   1   1   1   
3   58  19977179152683928199771779926828280   

i = 8
1   2   3   4   5   6   7   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
0   0   0   0   0   0   0   
2   2   2   2   2   2   2   
2   2   2   2   2   2   2   
7077988108 0   0   0   0   0   

i = 9
1   2   3   4   5   6   7   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   
0   0   0   0   0   0   0   

i = 10
1   2   3   4   5   6   7   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
0   0   0   0   0   0   0   
1   1   1   1   1   1   1   
2683544199977241732769843276800409626835641999771095

还是不行。
2018-04-21 20:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:8 
回复 5楼 自学的数学
这个框架只适合于当N==6或者当N==7的时候,如果不是这两个数那就和3进制的对不上号而出问题了,自己改改试试~

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

#define N 7

static void _fun( int,int,int** );

void print( const int a[][N][N] );

int main( void )
{
   int i,j;
   int a[27][N][N];
   int* p=NULL;
   
   for (i=0;i!=27;++i)
    {
        p=a[i][1];

        {
            for (j=1;j!=N+1;++j)
                  a[i][0][j-1]=j;      
        }
        
       _fun(i,~1,&p);
       _fun(i,1+N%2,&p);

    }
    
    print(a);
    
    return 0;
}
static void _fun( int k,int n,int** p )
{
     if (n>0)
        _fun(k/3,n-1,p);
   {
        int i=N+1;       
        while (--i)
        {
            
             **p=k%3;
              
              ++*p;
        }
                     
  }
    if (n<0)
        _fun(k/3,n+1,p);
}

void print( const int a[][N][N] )
{
    size_t i;
    for (i=0;i!=27;++i)
    {
        size_t j;
        printf("i = %d\n",i);
        for (j=0;j!=N;++j)
        {
            size_t k;
            for (k=0;k!=N;++k)
                printf("%-4d",a[i][j][k]);
            
            printf("\n");
        }
        
        printf("\n");
    }
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-21 22:22
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
我想把它的输出,输出到文件里,修改如下:
#include<stdio.h>
#include <stdlib.h>
#define N 7
static void _fun( int,int,int** );
void print( const int a[][N][N] );
int main(  )
{
   int i,j;
   int a[27][N][N];
   int* p=NULL;
   FILE *fp;
    if ((fp = fopen ("D:\\数组.txt", "a+")) == NULL)
    {
        printf("打开文件失败\n");
        exit(1);
    }
   for (i=0;i!=27;++i)
    {
        p=a[i][1];
        {
            for (j=1;j!=N+1;++j)
                  a[i][0][j-1]=j;      
        }
       _fun(i,~1,&p);
       _fun(i,1+N%2,&p);
    }
    print(a);
    fclose(fp);
    return 0;
}
static void _fun( int k,int n,int** p )
{
     if (n>0)
        _fun(k/3,n-1,p);
   {
        int i=N+1;      
        while (--i)
        {
             **p=k%3;
             ++*p;
        }
  }
    if (n<0)
        _fun(k/3,n+1,p);
}
void print(FILE *fp, const int a[][N][N] )
{
    size_t i;
    for (i=0;i!=27;++i)
    {
        size_t j;
        fprintf(fp,"i = %d\n",i);
        for (j=0;j!=N;++j)
        {
            size_t k;
            for (k=0;k!=N;++k)
                fprintf(fp,"%-4d",a[i][j][k]);
           fprintf(fp,"\n");
        }
        fprintf(fp,"\n");
    }
}

提示:
C:\Users\Administrator\Desktop\collect2.exe    [Error] ld returned 1 exit status
请问:是怎么回事??
2018-04-22 14:43
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 自学的数学
不知道具体情况,这个我也不好说清楚了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-22 15:23
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
代码就在上面的,你运行试试,就知道了。
2018-04-22 15:32
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:2 
回复 9楼 自学的数学
void print( FILE* fp,const int a[][N][N] );

主函数声明那里少了行参数,参数类型要和声明的一致才行~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-22 15:41
快速回复:程序何处有问题,该怎么修改,求教各位大神们。
数据加载中...
 
   



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

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