主题:一个小程序,实在找不出错了,求高手指点一下!
#include <stdio.h>
#include <stdlib.h>
int main( )
{ int node,temp,i,j,m,n,shu;
float a[500][4],bx[500],bye[500],bz[500],tt[500],c[500][4],cnode[500],cx[500],cy[500],cz[500],d,mmm;
FILE *fp1,*fp2,*fp3;
/*打开温度文件*/
fp1=fopen("E:\\Temperature.txt","r");
if(!fp1)exit(0);
temp=500;
node=50;
for(j=0;j<temp;j++)
{
for(i=0;i<4;i++)
fscanf(fp1,"%E",&a[j][i]);
bx[j]=a[j][0];
bye[j]=a[j][1];
bz[j]=a[j][2];
tt[j]=a[j][3];
}
fclose(fp1);
/*打开节点文件*/
fp2=fopen("E:\\node.txt","r");
if(!fp2)exit(0);
for(m=0;m<node;m++)
{
for(n=0;n<4;n++)
fscanf(fp2,"%E",&c[m][n]);
cnode[m]=c[m][0];
cx[m]=c[m][1];
cy[m]=c[m][2];
cz[m]=c[m][3];
}
fclose(fp2);
for(m=0;m<node;m++)
{
fp3=fopen("e:\\result.txt","a+") ;
{
for(j=0;j<temp;j++)
d=(cx[m]-bx[j])*(cx[m]-bx[j])+(cy[m]-bye[j])*(cy[m]-bye[j])+(cz[m]-bz[j])*(cz[m]-bz[j]);
mmm=0;
if (mmm>d)
mmm=d;
shu=j;
}
fprintf(fp3, "D, %d, temp, %E\n", m, tt[shu]);
fclose(fp3);
}
return 0;
}
就是打开两个文件,把数据读入,然后找最相近的点,然后输出。
#include <stdlib.h>
int main( )
{ int node,temp,i,j,m,n,shu;
float a[500][4],bx[500],bye[500],bz[500],tt[500],c[500][4],cnode[500],cx[500],cy[500],cz[500],d,mmm;
FILE *fp1,*fp2,*fp3;
/*打开温度文件*/
fp1=fopen("E:\\Temperature.txt","r");
if(!fp1)exit(0);
temp=500;
node=50;
for(j=0;j<temp;j++)
{
for(i=0;i<4;i++)
fscanf(fp1,"%E",&a[j][i]);
bx[j]=a[j][0];
bye[j]=a[j][1];
bz[j]=a[j][2];
tt[j]=a[j][3];
}
fclose(fp1);
/*打开节点文件*/
fp2=fopen("E:\\node.txt","r");
if(!fp2)exit(0);
for(m=0;m<node;m++)
{
for(n=0;n<4;n++)
fscanf(fp2,"%E",&c[m][n]);
cnode[m]=c[m][0];
cx[m]=c[m][1];
cy[m]=c[m][2];
cz[m]=c[m][3];
}
fclose(fp2);
for(m=0;m<node;m++)
{
fp3=fopen("e:\\result.txt","a+") ;
{
for(j=0;j<temp;j++)
d=(cx[m]-bx[j])*(cx[m]-bx[j])+(cy[m]-bye[j])*(cy[m]-bye[j])+(cz[m]-bz[j])*(cz[m]-bz[j]);
mmm=0;
if (mmm>d)
mmm=d;
shu=j;
}
fprintf(fp3, "D, %d, temp, %E\n", m, tt[shu]);
fclose(fp3);
}
return 0;
}
就是打开两个文件,把数据读入,然后找最相近的点,然后输出。