AT89S52用C语言编程的问题 5

为什么一段程序我这样写:while(1){i=1;do{for(j=0;j<100;j++)//循环100次约0.5s{display();coolctrl();}tem... 为什么一段程序我这样写:
while (1)
{ i=1;
do{
for (j=0;j<100;j++) //循环100次约0.5s
{
display();
coolctrl();
}
temptest1(); //每0.5s进行一次测温
temptest2(); //每0.5s进行一次测温
}
while (--i); //通过改变循环次数i的大小决定是否刷新显示
k=abs(ctemp1); //取温度绝对值
dispram[0]=k%10; //取个位数送显示
k/=10; //取十位数
dispram[1]=k? k:0x11; //送显示(带灭零)
}//end while (1)
}
而后面的一段程序没有被执行是怎么回事呀?没有被执行的程序如下:
temptest2(); //每0.5s进行一次测温
}
while (--i); //通过改变循环次数i的大小决定是否刷新显示
k=abs(ctemp1); //取温度绝对值
dispram[0]=k%10; //取个位数送显示
k/=10; //取十位数
dispram[1]=k? k:0x11; //送显示(带灭零)
}//end while (1)
}
有谁知道这是怎么一回事吗?能给出详细的解释吗?
我是用KEIL仿真的
展开
 我来答
杭州同济医院13
2015-04-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
c#界面绘制的时候,底层重绘每次会清除画布背景,然后再全部重新绘制,这才是导致闪烁最主要的原因。于是重载消息发送函数操作,禁掉这条消息。代码如下:
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0014) // 禁掉清除背景消息
return;
base.WndProc(ref m);
}
追问
你在说什么?我怎么看不明白
查晓筠0i5
2015-04-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
需要给你写吗
更多追问追答
追问
好呀
追答
代做的
我id
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chrls
2015-04-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
经过测试,程序没问题,以下这段是到达了的:
k=abs(ctemp1); //取温度绝对值
dispram[0]=k%10; //取个位数送显示
k/=10; //取十位数
dispram[1]=k? k:0x11; //送显示(带灭零)
C++测试程序如下:

#include <stdio.h>
#include<iostream>
using namespace std;

int main(){
int i, j,k;
while (1)
{ i=1;
do{
for (j=0;j<100;j++) {
printf("calling display\n");
printf("calling coolctr\n");
}
printf("calling tmptest1\n"); //ÿ0.5s½øÐÐÒ»´Î²âÎÂ
printf("calling tmptest2\n"); //ÿ0.5s½øÐÐÒ»´Î²âÎÂ
printf("i= %d\n", i);
cin >> k;
}
while (--i); //ͨ¹ý¸Ä±äÑ­»·´ÎÊýiµÄ´óС¾ö¶¨ÊÇ·ñË¢ÐÂÏÔʾ
printf("enter here\n");
printf("i= %d\n", i);
cin >> k;
}//end while (1)
return 0;
}
进入do循环中i==1;出来后i==0;便到达你所说不执行的语句了。你认为没有执行,但实际可能执行了,只是因为送显示后没显示出来,使你认为没有执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式