#include<stdio.h>
int main(){
int num,i
float sum=0
do{
do{
scanf("%d",&num)//容量
} while(num>=80&&num<120)//控制输入合法
if(num==0){
break
}else{
i=80//水滴数
sum=80//计算水滴损耗之后的容量
if(num>80)
for(i =81 sum< num i++){ //计算损耗之后容量
sum=sum*(119.0/120.0)+1
}
printf("\t %d",i)//输出
}
}while(true)
return 0
}
单片机学了一圈,回过头来才看明白这个东西水滴变大,就是用了pwm波的占空比,亮的次数一次比一次多的话,那么就会变的越来越亮的,,因为在252除4的63次循环中,每次都会k++,那么下次的时候执行db0=1的时间就会比上一次的时间短,那么就会变大了,不过这个程序这么写看着很复杂,你实现一个灯的亮度变化和,8个灯依次的亮度从大到小就能看懂这个了,等到水滴下落的时候,在254次的循环中,每次遇到加速的时间数组的时候就要变化各个灯的亮度,来模拟下落,然后后面的64的循环就是在64次中,用占空比实现到底是哪个灯最亮,哪个比前个暗一点,然后k的15次循环就是碰到该改变P0的值的一次了,这样就会按照a的数字改变值
#include<stdio.h>
int main()
{
int VUL,D,count1,i,count
int time,sum
printf("Please enter VUL and D:\n")
scanf("%d %d",&VUL,&D)
count1 = VUL%D
if(count1 == 0) //瓶子里有多少滴水
count = VUL/D
else
count = VUL/D + 1
sum = 0 //滴下的水总数目
i = 0 //停一下的时间和
while(sum <count)
{
i++
sum+=i
if(sum >=count)
{
i--
sum = i + count //水滴下的时间是确定的,所以只需计算停下时间和即i
time = sum
printf("\n%d\n",time) //显示总时间
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)