拜托各位高手帮帮我!!!
我有10个txt文件,在里面存储的都是二维数组,数量不等。格式如下;
01,02,04,05,06,15
01,02,04,05,06,18
01,02,04,05,06,19
01,02,04,05,06,21
01,02,04,05,06,22
01,02,04,05,06,25
01,02,04,05,06,26
二维数组由1-33中的任意6个数字组成。
我要编写的程序功能如下:
1.首先把这10个文件的内容读入内存,并且以数组的形式存储在内存中。(本功能已经完成,代码如下)
2.然后按照顺序,或者随意几个数组(依次为任意2个数组,3个数组,4个数组直到10个数组)求交集,并输出。
(需要各位大侠帮我写一下这里的功能,我尝试N次,都以失败告终。只需要一小部分,不用全写。)
如果没有时间把这些功能全写完,可以只写以部分的。谢谢啊!
注意:我们可以这个数组称为集合,任意的一个集合有两种形式,一个是它的本身,一个是它的补集。
集合与集合求交集时,必须考虑到它的补集。
第一部分代码如下:
// c1.cpp : 定义控制台应用程序的入口点。
//在Microsoft Visual C++ 2008环境下
//
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define MAXROW 1110000
#define MAXCOL 10
float input[MAXROW][MAXCOL];
int ss[1110000][6]={0};
int main()
{
FILE *fd=NULL;
fopen_s(&fd,"C:\\ssq1.txt", "w");
FILE * fp = NULL;
fp = fopen("c:\\ssq.txt", "r+");
char file[256] = "c:\\ssq.txt";
int row = 0;
int col = 0;
int k;
char strtmp[256], *str2;
if(fp != NULL){
while(fgets(strtmp, 256, fp)){
str2 = strtmp;
col = 0;
char sp[25], *ptr;
while(ptr = strchr(str2, ',')){
strncpy(sp, str2, ptr-strtmp);
sp[ptr-strtmp]='\0';
input[row][col++] = atof(sp);
str2 = ptr+1;
}
input[row][col++] = atof(str2);
row ++;
}
}
else
printf( "open file failed\n");
int i, j;
for( i = 0; i < row; i++){
for( j = 0; j < col; j++)
{
k=(int)input[i][j];//浮点型转整型
ss[i][j]=k;//存到数组ss[i][j]中
printf("%d ", ss[i][j]);
fprintf(fd,"%d ",ss[i][j]);
}
printf("\n");
fprintf(fd,"\n");
}
fprintf(fd,"成功!%d",i);
fclose(fp);
fclose(fd);
return 0;
}