我試圖在Xcode中的C++中使用fprintf輸出以用於物理項目。以前我在PC上使用Turbo C++,並且沒有類似輸出的問題,正如我在下面寫到的那樣...我試圖將數據發送到.csv文件以便在xcel中創建圖表/圖表,但調試器HATES我嘗試的輸出。有人可以幫助我,告訴我如何將輸出從xcode發送到xcel或mac的數字程序嗎?我的代碼有什麼問題?感謝我在我的最後!在XCode中存在fprintf C的問題
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int ia,ja,ib=1,jb=1,n=1,t=1;
float Ia[25],Ja[25],C[25][25],Wbb[25][25];
float xl[25][25],xr[25][25],Pr[25][25],Nr[25][25];
float max,r1,H=0;
max=RAND_MAX;
FILE * Project1;
Project1 = fopen ("Users/Dave/Desktop/Project1.csv","w");
Ia[n]=3;
Ja[n]=3;
for(t=1;t<100;++t) //time step counter
{
n=1;
for(n=1;n<26;++n) //# of states to look at
{
ia=Ia[n];
ja=Ja[n];
ib=1;
for(ib=1;ib<6;++ib) //determine I[n]'s C[ia][ja] values (initially will be the same due to ICs)
{
jb=1;
for(jb=1;jb<6;++jb)
{
C[ia][ja]=100*(ia-ib)^2+100*(ja-jb)^2+1;
}
}
fprintf(Project1, "%d,%d,%d,%f\n",n,ia,ja,C[ia][ja]);
ib=1;
for(ib=1;ib<6;++ib) //determine Wsrs and delta x's for each system I[n] {
{
jb=1;
for(jb=1;jb<6;++jb)
{
Wbb[ib][jb]=C[ia][ja]/((100)*(ia-ib)^2+100*(ja-jb)^2+1);
xl[1][1]=0;
xr[ib][jb]=xl[ib][jb]+Wbb[ib][jb];
fprintf(Project1,"%d,%d,%f,%f,%f",ib,jb,Wbb[ib][jb],xl[ib][jb],xr[ib][jb]);
xl[ib][jb+1]=xr[ib][jb];
}
}
r1=rand()/max; //randomly select new state and determine it's ib,jb value and reassign to new ia, ja at next time step
ib=1;
for(ib=1;ib<6;++ib)
{
jb=1;
for(jb=1;jb<6;++jb)
{
if(r1<xr[ib][jb] & r1>xl[ib][jb])
Nr[ib][jb]++;
Ia[n]=ib;
Ja[n]=jb;
}
}
}
ib=1;
for(ib=1;ib<6;++ib)
{
jb=1;
for(jb=1;jb<6;++jb)
{
Pr[ib][jb]=Nr[ib][jb]/25;
H=Pr[ib][jb]*log(Pr[ib][jb])+H; //Compute Total Entropy Function of all systems by adding each systems entropy
}
}
fprintf(Project1,"%f",H); //print out the Entropy at each time step
}
}
我不明白這個問題。 – trojanfoe 2013-03-18 00:56:45
這看起來像FORTRAN翻譯成C :)。一個嚴重的問題是:'Wbb [ib] [jb] = C [ia] [ja] /((100)*(ia-ib)^ 2 + 100 *(ja-jb)^ 2 + 1) C/C++沒有「^」「power-of」運算符。您需要替換「exp()」數學函數。以下是[C/C++運算符]的列表(http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V40F_HTML/AQTLTBTE/DOCU_059.HTM)。 – paulsm4 2013-03-18 00:59:45
@ paulsm4我同意這個觀點,因此懷疑這個說法的正確性*「以前我在PC上使用過Turbo C++,沒有類似輸出的問題,就像我在下面寫到的一樣......」*甚至沒有Turbo C++不足以將XOR運算符覆蓋爲「指數」運算符。 – WhozCraig 2013-03-18 01:06:17