C++ 輸出以及排列的問題﹝已解決﹞

Home Home
引用 | 編輯 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
引用 | 編輯 tk7545
2009-11-18 14:54
5樓
  
哇嗚,大大你是怎麼辦到的?

感謝您的解答, 表情

啾一個给你

PS:為什麼最後都會有一個最後計算出來的值跑出來? 表情

獻花 x0
引用 | 編輯 teldeanmac85
2009-11-19 00:12
6樓
  
哇嗚,大大你是怎麼辦到的?

感謝您的解答,

啾一個给你

PS:為什麼最後都會有一個最後計算出來的值跑出來?
--
to tk7545 :
你首篇發的文 代入公式 算出來的值 ? 不是嗎 ?
表情
因為我不知道代那些公式的意義在哪 ?
表情 因為我花很少的時間弄出來 , 沒什麼時間分析 表情

獻花 x1
引用 | 編輯 tk7545
2009-11-20 16:21
7樓
  
大大我已經找到原因了

原因是我最後一個

i<360 要改成 i<=360

謝謝大大! 你的邏輯讓程式碼變簡單! 表情

獻花 x0