就你写的代码,第一次输出结果为 5 0 第二次输入结果为5 5 。。。
你的Plain数组中有效值只有Plain[0]和Plain[1],请理解/和%的区别,以及C对待字符是当做整数对待的可以查看ASC码表,输出的结果不同主要是因为/和%,第二次for循环
y=char(Plai[k]%10)+ '0';//k=1 plai[1]=='7'==55 Plai[k]%10==5!!
Plain[i+1]=y;
printf("%c",Plain[i+1]);
#include
void main()
{
int i=0;
//int m[20];
unsigned char Plai[2]={'2','7'};
unsigned char Plain[200];
unsigned char y;
for (int k=0;k<2;k++)
{
//i=0; 错在这里
y=char(Plai[k]/10)+ '0';
Plain[i]=y;
printf("%c",Plain[i]);
y=char(Plai[k]%10)+ '0';
Plain[i+1]=y;
printf("%c",Plain[i+1]);
i=i+2;
if(k==1)
{
printf("\n");
for (i=0;i<4;i++)
{
printf("%c",Plain[i]);
}
printf("\n");
}
}
}