回 帖 发 新 帖 刷新版面

主题:一个小程序,实在找不出错了,求高手指点一下!

#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;

就是打开两个文件,把数据读入,然后找最相近的点,然后输出。

回复列表 (共2个回复)

沙发

确定你有这两个文件
Temperature.txt
node.txt

或者这样打开
  fp1=fopen("E:\\Temperature.txt","a+"); 
  fp2=fopen("E:\\node.txt","a+"); 

板凳

从表面上看,最后那一个块的花括号好乱噢。

我来回复

您尚未登录,请登录后再回复。点此登录或注册