51单片机的一个赋值问题--数组

2020-01-27 11:27发布

本帖最后由 and001 于 2013-8-19 11:49 编辑

存在如下一个赋值问题:

我的目的是将一个4位数分别单独转换成数字显示出来:


方法一:

char i=1;
unsigned ring_lengther[2]={2023,6723};
unsigned ring_lengther;   
unsinged k2,

        ring_lengther=ring_length;
         k2= ring_length/1000;

         k3=ring_length%1000/100;
         k4=ring_length%100/10;
         k5=ring_length%10;

运行最后显示的是: 0000

方法二:

char i=1;
unsigned ring_length[2]={2023,6723};
unsigned ring_lengther;   
unsinged k2,

         ring_lengther=ring_length;
         k2= ring_lengther/1000;

         k3=ring_lengther%1000/100;
         k4=ring_lengther%100/10;
         k5=ring_lengther%10;

运行最后显示的是:K2=6  K3=7 K4=2  K5=3


请弄过的朋友解释下为啥方法一得不到所需要的结果?!

各抒己见!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
and001
1楼-- · 2020-01-27 15:06
事实上ring_lengther=ring_length;
应该为 ring_lengther=ring_length[i];
不知道为啥改不了!
linbin250
2楼-- · 2020-01-27 19:25
 精彩回答 2  元偷偷看……
and001
3楼-- · 2020-01-27 21:28
哈哈!
一个是数组直接操作除和取余运行,一个是数组赋给一变量后进行运算!
楼下看清了吗?
M.Bing
4楼-- · 2020-01-27 22:04
unsigned ring_lengther[2]={2023,6723};
什么数据类型?  应该是unsigned int ring_lengther[2]={2023,6723};
and001
5楼-- · 2020-01-27 23:16
本帖最后由 and001 于 2013-8-19 15:47 编辑

不好意思再贴一次问题(贴上去的时候是漏了东西)

再贴一次:


方法一:

unsigned char i=1;
unsigned short ring_length[2]={2023,6723};
unsigned short ring_lengther;   
unsinged char k2,k3,k4,k5;

ring_lengther=ring_length;
k2= ring_length/1000;

k3=ring_length%1000/100;
k4=ring_length%100/10;
k5=ring_length%10;

运行结果: 0000


方法二:

unsigned char i=1;
unsigned short ring_length[2]={2023,6723};
unsigned short ring_lengther;   
unsinged char k2,k3,k4,k5;

ring_lengther=ring_length;
k2= ring_lengther/1000;

k3=ring_lengther%1000/100;
k4=ring_lengther%100/10;
k5=ring_lengther%10;

运行结果: k2=6 k3=7 k4=2 k5=3
and001
6楼-- · 2020-01-28 04:27
贴得还有问题,我已经更新了!非常不好意思!

一周热门 更多>