看看这个代码错在哪
#include
#define LED_NUM 8
#define CYCLE 600
sbit LED_Pins[LED_NUM] = {P1^0, P1^1, P1^2, P1^3, P1^4, P1^5, P1^6, P1^7};
void Delay(unsigned int t);
void main(void)
{
unsigned int PWM_LOW = 0;
unsigned int i = 0;
while (1)
{
for (i = 0; i < LED_NUM; i++)
{
LED_Pins[i] = 1;
Delay(60000);
for (PWM_LOW = 1; PWM_LOW < CYCLE; PWM_LOW++)
{
LED_Pins[i] = 0;
Delay(PWM_LOW);
LED_Pins[i] = 1;
Delay(CYCLE - PWM_LOW);
}
LED_Pins[i] = 0;
}
}
}
void Delay(unsigned int t)
{
while (--t);
}
void Delay(unsigned int t);进行参数检查,导致可能出现无法预料的结果
改一下:
void Delay(unsigned int t)
{
if (t == 0) return;
while (--t);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:下面我们进行代码的具体实现:
int main()
{
int num = 0; //用于存放一个数字
int scale = 0; //用于存放你选择的进制
printf("请输入一个十进制数字:>");
scanf("%d", &num);
printf("请输入你将转换的进制:>");
scanf("%d", &scale);
fun(num, scale);
printf("\n");
return 0;
}
void fun(int num, int scale)
{
if (num/scale) //如果num>=scale 说明在该进制下的数字
fun(num / scale, scale);
printf("%d", num%scale);
}
效果展示
我需要看到具体的代码才能找到错误并提供解决方案。请您尽快提供代码,同时提供更多的信息,如程序运行的环境和出现错误的具体情况,以便更好地解决问题。