引用 | 编辑
csr
2011-03-12 07:48 |
楼主
▼ |
||
![]() 小弟用for,while,写都没问题 但是要使用do while就是会造成回圈或写不出来 不知小弟那里有错 可否麻烦大大们帮小弟修改 否则都快疯了 以下是程式码 谢谢 #include<stdio. .. 访客只能看到部份内容,免费 加入会员 ![]()
|
引用 | 编辑
星辰雪
2011-03-13 21:03 |
1楼
▲ ▼ |
我修改了一下
但是不知道 你要的答案 是如何 你先看一下吧 复制程式 #include<stdio.h> #include<stdlib.h> int main(void) { int i=0,j=0; do { do { if((i+j)%2==0) printf("%c",2); else printf("%c",1); i++; }while(i<=10); printf("\n"); j++; }while(j<=10); system("pause"); return 0; } 建议一下 贴程式码最好是用 >>>> 插入代码<<<< 这功能比较好 还有程式码 需要排版一下.... 可以参考一下 这个网站 程式语言教学志 ![]() |
引用 | 编辑
csr
2011-03-14 08:56 |
2楼
▲ ▼ |
小弟现无法详细跟大大回答
等晚上有空再看程式跑的怎样 大大提供的这个网站小弟已经有拜访过 (可以参考一下 这个网站 程式语言教学志 ) 但是还是写不出来 所以才跟大大讨救兵 谢谢 ![]() |
引用 | 编辑
totsi
2011-03-14 10:42 |
3楼
▲ ▼ |
一楼的解法有改掉回圈不会结束的问题。
不过在i <= 10的时候,会第一行印出11个图形。 之后当i >10以后,每换一行ˊ只会印出1个图形。 建议if..else还是使用"{","}"包起来,不然底下的i++不晓得是条件成立才加,还是每次都加。 如果是要每行都有11个图形的话,可以像底下的作法。 (只贴do里面的,其他不变的就不贴了) 复制程式 do { i = 0; do { if((i+j)%2==0) { printf("%c",2); }else{ printf("%c",1); } i++; }while(i<=10); printf("\n"); j++; }while(j<=10); 不过我比较好奇的是,楼主为什么要在第一个do..while里面把j也设为0? 题外话,楼主的闰年问题,已经有附专案到在下回覆的主题内。所以有空可以去看看。在下是用vs2005,所以如果vs2010不能编译的话,设定部分可能就要麻烦楼主去找一下噜。 里面用到的都是vc++内建的东西,所以应该是不用改设定才对。 图 1. ![]() Result ![]() |
引用 | 编辑
csr
2011-03-14 15:23 |
4楼
▲ ▼ |
下面是引用 totsi 于 2011-03-14 10:42 发表的 : 大大您好 小弟用dev c++编译后怎么会只有一行 而不是大大所得的结果图 以下是小弟加上大大的改正编码是否可请大大再帮小弟的程式看看 到底是那里小弟放错地方了 谢谢 ![]() #include<stdio.h> #include<stdlib.h> int main(void) { int i,j; do { i = 0; do { if((i+j)%2==0) { printf("%c",2); }else{ printf("%c",1); } i++; }while(i<=10); printf("\n"); j++; }while(j<=10); system("pause"); return 0; } ![]() |
引用 | 编辑
星辰雪
2011-03-14 16:45 |
5楼
▲ ▼ |
复制程式
#include<stdio.h> #include<stdlib.h> int main(void) { int i=0,j=0; // 这边要设定成0... // do { i = 0; do { if((i+j)%2==0) { printf("%c",2); }else{ printf("%c",1); } i++; }while(i<=10); printf("\n"); j++; }while(j<=10); system("pause"); return 0; ![]() |
引用 | 编辑
totsi
2011-03-14 16:53 |
6楼
▲ ▼ |
诚如同星辰雪大大所言~
用来作计算数量的变数,一定要归零。 所以养成好习惯就是,每当有变数宣告,就要将他进行初始化。 避免使用到的时候,忘记设定,就会出现问题了。 ![]() |