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