| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2807 人关注过本帖
标题:下面程序怎样改程序运行的结果才能输出到文件呢?
取消只看楼主 加入收藏
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
结帖率:88.89%
收藏
已结贴  问题点数:50 回复次数:7 
下面程序怎样改程序运行的结果才能输出到文件呢?
#include <stdio.h>
#include <stdlib.h>

int  same_state=0;            //包含状态位
void findout(int a[],int n,int m,int r,int q[],int **BB,int bb);
void main()
{
    int n,r;int *p,*q;
    int b,bb;int **B;        //存储要删除的数组
    printf("要找的不同的整数个数:");
    scanf("%d",&n);
    p=(int*)malloc(n*sizeof(int));
    printf("输入%d个不同的整数:",n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&p[i]);
    }
    printf("输入要找元素组合的个数:");
    scanf("%d",&r);
    q=(int *)malloc(r*sizeof(int));
   
   
    printf("\n输入你将要输入的数组个数:");          //根据你的例子有两个数组,这里应该输入2
     scanf("%d",&bb);
    B=(int **)malloc(bb*sizeof(int*));

    for( i=0;i<bb;i++)
    {
        B[i]=(int *)malloc(sizeof(int));
        B[i][0]=0;
        printf("请输入第%d个数组:",i+1);
      for(int j=2;1;j++)
      {
      
      
         scanf("%d",&b);
         if(b==0) break;                                   //每输入一个数组后请输入一个0来结束输入
         else        
         {
             B[i]=(int *)realloc(B[i],j*sizeof(int));
             B[i][j-1]=b;
             B[i][0]++;
         }

      }
    }
    findout(p,n,r,r,q,B,bb);
}

void findout(int a[],int n,int m,int r,int q[],int **BB,int bb)
{
    for(int i=n;i>=m;i--)
    {
        q[m-1]=a[i-1];
        if(m>1)
            findout(a,i-1,m-1,r,q,BB,bb);
        else
        {   

    /*---这段是比较,如果输出数组中包含了其中一项要删除的数组,same_state将变为b,否则仍然是0---*/
            same_state=0;
            for(int x=0;x<bb;x++)
            {
               for(int y=0;y<BB[x][0];y++)
               {
                  if(same_state!=y) break;
                  for(int z=0;z<r;z++)
                  {
                     if(q[z]==BB[x][y+1])
                     {
                       same_state++;
                     }

                  }
                  
               
               }
               if(same_state==BB[x][0]) break;
               else              same_state=0;
            }

    /*---------------------------------------------------------------------------------*/
            if(same_state==0)
            {
            for(int j=r-1;j>=0;j--)
                printf("%d   ",q[j]);
            putchar('\n');
            
            }
        }
        
    }

}
搜索更多相关主题的帖子: include 元素 
2012-08-01 21:44
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
怎么改。。。帮忙改改。。。谢谢
2012-08-02 19:25
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
回复 2楼 cnfarer
怎么改。。。帮忙改改。。。谢谢
2012-08-02 20:20
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
回复 6楼 cnfarer
怎么我按你说的改了,不过,程序运行的结果输不到文件里呢,看看哪里出错了
#include <stdio.h>
#include <stdlib.h>

int  same_state=0;            //包含状态位
void findout(int a[],int n,int m,int r,int q[],int **BB,int bb);
void main()
{
    int n,r;int *p,*q;
    int b,bb;int **B;        //存储要删除的数组
    printf("要找的不同的整数个数:");
    scanf("%d",&n);
    p=(int*)malloc(n*sizeof(int));
    printf("输入%d个不同的整数:",n);
    for(int i=0;i<n;i++)
    {
        scanf("%d",&p[i]);
    }
    printf("输入要找元素组合的个数:");
    scanf("%d",&r);
    q=(int *)malloc(r*sizeof(int));
   
   
    printf("\n输入你将要输入的数组个数:");          //根据你的例子有两个数组,这里应该输入2
     scanf("%d",&bb);
    B=(int **)malloc(bb*sizeof(int*));

    for( i=0;i<bb;i++)
    {
        B[i]=(int *)malloc(sizeof(int));
        B[i][0]=0;
        printf("请输入第%d个数组:",i+1);
      for(int j=2;1;j++)
      {
      
      
         scanf("%d",&b);
         if(b==0) break;                                   //每输入一个数组后请输入一个0来结束输入
         else        
         {
             B[i]=(int *)realloc(B[i],j*sizeof(int));
             B[i][j-1]=b;
             B[i][0]++;
         }

      }
    }
    findout(p,n,r,r,q,B,bb);
}

void findout(int a[],int n,int m,int r,int q[],int **BB,int bb)
{FILE *fp=fopen("d:\\xxxx.txt","w+");//创建一个文件

    for(int i=n;i>=m;i--)
    {
        q[m-1]=a[i-1];
        if(m>1)
            findout(a,i-1,m-1,r,q,BB,bb);
        else
        {   

    /*---这段是比较,如果输出数组中包含了其中一项要删除的数组,same_state将变为b,否则仍然是0---*/
            same_state=0;
            for(int x=0;x<bb;x++)
            {
               for(int y=0;y<BB[x][0];y++)
               {
                  if(same_state!=y) break;
                  for(int z=0;z<r;z++)
                  {
                     if(q[z]==BB[x][y+1])
                     {
                       same_state++;
                     }

                  }
                  
               
               }
               if(same_state==BB[x][0]) break;
               else              same_state=0;
            }

    /*---------------------------------------------------------------------------------*/
                        if(same_state==0)
            {
            for(int j=r-1;j>=0;j--)
        fprintf(fp,"%d   ",q[j]);//写数据
        fprintf(fp,"\n");
               
                //printf("%d   ",q[j]);
           // putchar('\n');
            
            }
        }   
    }
    fclose(fp);
}

2012-08-03 20:43
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
文件是创建成功了
可是是空的。。。
2012-08-03 20:45
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
屏幕上也没有输出
2012-08-03 20:48
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
回复 10楼 cnfarer
不能编译;你看是这样改不。。
    /*---------------------------------------------------------------------------------*/
                        if(same_state==0)
            {
         
           for(int j=r-1;j>=0;j--){
    fprintf(fp,"%d   ",q[j]);//写数据
    printf("%d   ",q[j]);
}
fprintf(fp,"\n");
putchar('\n');
            
            }
        }   
    }
    fclose(fp);
}   
  出错显示;
-------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.cpp
C:\Documents and Settings\Administrator\1.cpp(51) : error C2065: 'fp' : undeclared identifier
C:\Documents and Settings\Administrator\1.cpp(51) : error C2296: '*' : illegal, left operand has type 'struct _iobuf *'
执行 cl.exe 时出错.

1.obj - 1 error(s), 0 warning(S)
2012-08-04 19:49
lyxcjm
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2011-4-16
收藏
得分:0 
是这样改吗、、、、、、
2012-08-05 19:19
快速回复:下面程序怎样改程序运行的结果才能输出到文件呢?
数据加载中...
 
   



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

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