引用 | 编辑
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 |