真不懂C51,for循环都不会写了。

2020-02-05 09:07发布

这两种写法有什么区别:
1、for(j=WinY1;j>=WinY2;j--)Point(i,j,1);
2、for(j=WinY2;j<=WinY1;j++)Point(i,j,0);
一种是从大到小,一种是从小到大,问题是有一种运行后死机了。所有变量均是unsigned char,当WinY2=0时死机。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
lcw_swust
1楼-- · 2020-02-05 12:27
当WinY2=0时"j>=WinY2"是一直成立的,因为j的最小值为0,0>=0是成立的,j-1就成255了。
tlptotop
2楼-- · 2020-02-05 14:50
一般是形成了死循环。
unsigned char 类型的变量 范围是0-255  ,看你的 i j WinY1  WinY2 也没有超过这个范围。
adamwin2011
3楼-- · 2020-02-05 20:29
看C语言书吧,有你要的答案
xinzhi1986
4楼-- · 2020-02-06 01:38
 精彩回答 2  元偷偷看……
fangmcu
5楼-- · 2020-02-06 02:30
变量是unsigned char,变量改为有符号数吧 char
eduhf_123
6楼-- · 2020-02-06 02:32
这个与C51无关,C语言功底不够、基础就不扎实。

一周热门 更多>