我编写了一个程序,通过一维固体模拟热通量。它产生所有距离x的通量值,然后增加时间并重复。我现在的问题是,我希望以一种格式将结果写入Excel,该格式生成一个基本表格,其中水平距离的变化和垂直运行的时间变化。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float fluxfunction(int x,int t)
{
int n, L=10, q1=2, k = 5;
float flux1=0, pi = 3.141592, exp = 2.718281;
for(n=1;n<=1000;n++)
{
flux1+=q1*(2/(pi*n))*(cos(n*pi)-1)*(sin((n*pi*(x+L))/(2*L)))*pow(exp,-(k*t*(n*n*pi*pi)/(4*L*L)));
}
flux1+=q1;
return flux1;
}
int main()
{
int i, j, L=10,tmax=30;
float f, results [tmax+1][L+1];
FILE *fp;
fp = fopen("fouriertest.csv", "w");
for(j=0;j<=tmax;j++)
{
for(i=0;i<=L;i++)
{
results [j][i]=fluxfunction(i,j);
if (i==L)
{
fprintf(fp, "%f\n",results [j][i]);
}
else
{
fprintf(fp, "%f",results [j][i]);
}
}
}
return 0;
}
这是我到目前为止所做的,但不幸的是,在我尝试写一列增加i
的值时,没有细胞分离。如下图所示:
答案 0 :(得分:0)
你必须使用';'
昏迷字符分隔字段;你的主要功能应该是这样的:
int main()
{
int i, j, L=10,tmax=30;
float f, results [tmax+1][L+1];
FILE *fp;
fp = fopen("fouriertest.csv", "w");
for(j=0;j<=tmax;j++)
{
for(i=0;i<=L;i++)
{
results [j][i]=fluxfunction(i,j);
fprintf(fp, "%f%c",results [j][i],(i==L)?'\n':';');
}
}
fclose(fp);
return 0;
}