哦,是你啊,这程序,给你分析下。
首先你要看好,在while(1)里面,两个函数体是不是单独顺序执行的?在你执行完发光管程序后,才执行电机程序,如此往复。所以才会出现你说的情况。如果想同时,那么请将一个放入main函数,另一个放到定时器里面去执行,这样就可以了。另外,通过你的程序可以看出,你没有延时函数,这将导致你的八个灯同时亮,因为人眼根本看不到灯的变化。电机呢,貌似是步进电机,电机全速运转。但是,由于没有延时函数,八个灯和电机执行的时间都很短,灯是闪烁的,电机只是一抖一抖的。
#include<stdioh>
void main()
{
int x,y;
x=y=0;
while(x<15)
{
y++,x+=++y;
printf("%d,%d\n",y,x);
}
printf("%d,%d",y,x);
}
2,2
4,6
6,12
8,20
8,20Press any key to continue上面是运行结果,执行一次while中的语句,y值增加2,x加上的值是y增加2后的值
while(1)其中1代表一个常量表达式,while(1) 表示无限循环,除非你设置break等类似的跳出循环语句循环才会中止
while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。
扩展资料:
while(1) 表示无限循环。
while的语法格式为 :
while(condition)
{
//do something 1
}
//do something 2
condition 为循环条件,每次判断condition是否为真,为真时执行while循环体中的语句块(代码中块1);为假时结束循环,执行后续语句(代码中块2)。
这里condition为1 表示条件永远为真,一直执行循环体内语句。为了结束循环,可以在循环体内满足某些特定条件使用break跳出循环。
如下:
while(1)
{
//do something
if(condition)
{
break;
}
}
参考资料:
// 记得多给点分哦,很难写的。
// C
#include <stdioh>
int strnmerge(charstr,int n,char consts1,char consts2){
while(n > 0) {
if(!(s1) && !(s2)) break;
if(s1 && n > 0) {
str++ = s1++;
--n;
}
if(s2 && n > 0) {
str++ = s2++;
--n;
}
}
str = '\0';
}
int main() {
char s1[] = "aaaa";
char s2[] = "bbbbbbbbb";
char str[100];
strnmerge(str, 10, s1, s2);
printf("s1 = %s\n", s1);
printf("s2 = %s\n", s2);
printf("str = %s\n", str);
return 0;
}
// C++
#include <iostream>
using namespace std;
int strnmerge(charstr,int n,char consts1,char consts2){
while(n > 0) {
if(!(s1) && !(s2)) break;
if(s1 && n > 0) {
str++ = s1++;
--n;
}
if(s2 && n > 0) {
str++ = s2++;
--n;
}
}
str = '\0';
}
int main() {
char s1[] = "aaaa";
char s2[] = "bbbbbbbbb";
char str[100];
strnmerge(str, 10, s1, s2);
cout << "s1 = " << s1 << endl;
cout << "s2 = " << s2 << endl;
cout << "str = " << str << endl;
return 0;
}
n%10 是n除以10取余数 如果n=12那么n%10=2
因为你定义的n是INT类型的,所以输出n%10后,它执行n=n/10,正因为N是INT类型的,所以N/10是取整数部分的,如果N=13,那么N/10=1
当你输入小于0的N时,它不满足WHILE条件,所以一次都不循环
当你输入大于0的N时,它才开始循环,一旦N小于10了,它就跳出循环了
因为N小于10,那么它除以10的结果的整数部分一定为0,就不满足WHILE的条件了
现在懂了吗?
以上就是关于一个小程序,两个子函数分别为控制流水灯和让电机旋转,想让两个功能同时实现,下到单片机里时两个功能不全部的内容,包括:一个小程序,两个子函数分别为控制流水灯和让电机旋转,想让两个功能同时实现,下到单片机里时两个功能不、解释一下这个C语言小程序、while(1) 什么意思 while(i--)什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)