登录注册
论坛
一粒金砂(初级)
1
0
程序:
#include <reg52.h>sbit led=P1^0;a(char j) //阶乘运算{ unsigned int x,y=1; for(x=j; x>=1; x--) y=y*x; return y;}
void main(){ unsigned int i,z,a; while(1) { led=0; z=a(i); for(a=0; a<=z; a--) { if(0 == a) { led=1; } } if(8 == i) { i=0; } else i++; }}
每当程序进入阶乘运算就出不来了,麻烦各位指出小弟错误。本人是刚开始学习单片机。
扫一扫,分享给好友
裸片初长成(初级)
3404
6
版主
4008
原帖由 jishuaihu 于 2012-2-6 13:30 发表 a(char j) //阶乘运算 { unsigned int x,y=1; for(x=j; x>=1; x--) y=y*x; return y; } 这个函数没有定义返回值类型。 再有unsigned int应该是8位的,最大到255,只能算到5的阶乘!
unsigned int 16位
一粒金砂(中级)
8
i没有赋初值,为随机数大于8后就不会归零了 改成if(i >=8 )
发表回复 回帖后跳转到最后一页
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWorld Datasheet 技术支持
查看 »