数据中有很多小数,我想问下怎么存入,最好有程序,本人C或者C++不是很好。比如说这个文档在C盘目录下(只有这么多财富了)
里面的M,N你自己设定:800*800的数组有点大,所以一般这种太大的存储结构是不会这样实现的
/**********************************************
*2011-4-25 21:07
***********************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 10
#define N 10
short array[M][N]={0};//全局数组
int i=0,j=0;
void write_file();//在当前程序目录下生成数据文件
void read_file();//将数据文件中数据导入数组存储
void main(void)
{//测试数组中数据是否获取自数据文件
int pos=1;
write_file();
read_file();
do
{
printf("你想要显示文件中第几号数据(1-%d):\n",M*N);
scanf("%d",&pos);
i=(pos-1)/M;
j=(pos-1)%N;
printf("%7d\n",array[i][j]);
}while(pos>0 && pos<=M*N);
}
void write_file()
{
FILE *fp;
if(!(fp=fopen("data.dat","w")))
{
printf("fail to open file--'data.dat'!\n");
system("pause");
exit(0);
}
srand((unsigned)time(NULL));
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
fprintf(fp,"%-7d",rand());
}
}
fclose(fp);
}
void read_file()
{
FILE *fp;
if(!(fp=fopen("data.dat","r")))
{
printf("fail to open file--'data.dat'!\n");
system("pause");
exit(0);
}
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
fscanf(fp,"%7d",&array[i][j]);
}
}
fclose(fp);
}
里面的write_file()是为了生成一个10*10整形数据的文件,在数据文件生成之后,这个程序可以关掉,直接用read_file()就可以将数据导入到数组,然后用主程序测试
效果如下: