引用 | 編輯
tk7545
2009-11-13 17:14 |
樓主
▼ |
||
x0
各位大大好: 我是第一次利用這個論壇發問問題,如有不對的地方還請多多包含! 我寫了一個程式需要跑三個迴圈,第一層j(1~3),第二層也是k(1~3),最底層則是i(1:360) 輸出只有一個代碼"A" 當第一層j等於1第二層k等於1時,則i會從1跑到360,讓if判斷各個區間需要代入哪條公式 ,這時候會輸出360個答案,簡稱A11 當第一層j等於1第二層k等於2時,則i會從1跑到360,讓if判斷各個區間需要代入哪條公式 ,這時候會輸出360個答案,簡稱A12 當第一層j等於1第二層k等於3時,則i會從1跑到360,讓if判斷各個區間需要代入哪條公式 ,這時候會輸出36 .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
tk7545
2009-11-13 22:22 |
1樓
▲ ▼ |
各位大大好
我把我上面的值存起來成為一個.TXT檔 printf("%d\n",A); //把答案存成由上至下一大排 fprintf(outfile,"%d\n",A); 讓他把九種組合的答案印出來成為一大串,因為一種答案會有360個所以會有9*360個數值(所以.TXT檔會很長) 是否有方法可以先將這一大串數值轉成一大串字串 在由字串去做每360次分割跳行一次,這樣就能分割成9排了呢? 因為我是初學C語言對比較困難的部份真的無從下手,又很急著需要這個解答 拜託各位前輩了 謝謝 x0 |
引用 | 編輯
jonaspeng
2009-11-14 00:40 |
2樓
▲ ▼ |
// 每360個換一行
for (j=1; j<=3; j++) for(k=1; k<=3; k++) { for(i=1; i<=360; i++) { if(i>=0&&i<60) A=1+2*(j-1)+3*(k-1); if(i>=60&&i<180) A=1+2*(j-1)+3*(k-1)*200; if(i>=180&&i<360) A=1+2*(j-1)+3*(k-1)+200; printf("%d ",A); // %d後面有一個空白字元 } printf("\n"); } x2 |
引用 | 編輯
tk7545
2009-11-14 12:12 |
3樓
▲ ▼ |
謝謝~
的確有360個換一行, 但是我想要的是...答案由上排到下 不是像現在這樣11111111111111111111111112222222222222223333333333~360個時候跳 而是 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 到 360 換到右邊那行在繼續下來 謝謝 x0 |
引用 | 編輯
teldeanmac85
2009-11-17 10:02 |
4樓
▲ ▼ |
這樣子做就好啦
至於檔案放置的位置在C:\test.txt 你可以用UltraEdit看看,是不是你要的 複製程式 #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]) { FILE *pfile = fopen("C:\\test.txt","w") ; int i,j,k,A; for(i=1; i<=360; i++){ for(j=1; j<=3; j++){ for(k=1; k<=3; k++){ if(i>=0 && i<60 ) {A=1+2*(j-1)+3*(k-1); } if(i>=60 && i<180) {A=1+2*(j-1)+3*(k-1)*200;} if(i>=180 && i<360) {A=1+2*(j-1)+3*(k-1)+200;} fprintf(pfile,"%5d ",A) ; } } fprintf(pfile,"\n") ; } fclose(pfile) ; system("pause"); return 0; } x2 |
引用 | 編輯
teldeanmac85
2009-11-19 00:12 |
6樓
▲ ▼ |
哇嗚,大大你是怎麼辦到的?
感謝您的解答, 啾一個给你 PS:為什麼最後都會有一個最後計算出來的值跑出來? -- to tk7545 : 你首篇發的文 代入公式 算出來的值 ? 不是嗎 ? 因為我不知道代那些公式的意義在哪 ? 因為我花很少的時間弄出來 , 沒什麼時間分析 x1 |