请问该如何解决自动减1 这个问题?

void Tak_Pat(u8 weishu){
u8 i,k;
u322 temp;
temp=total;
k=weishu;
for(i=0;i<weishu;i++){
table1[i]=(temp/(pow(10,k-1)));
temp=temp-(table1[i]*(pow(10,k-1)));
k--;
}
}}

在i=1的时候,只要是total超过4位数它的temp就会自动减了1;weishu就是那个total的位数,table1用来储存单个的数字,这个函数是要把输入的数字分开成单个的数字来显示,如何解决自动减1 这个问题

慕少森
浏览 115回答 1
1回答

SMILET

给你两个函数,一个函数统计整数长度,一个将整数分解成单个字符存在数组中。你可以参考一下。/*******************************************************************************************************函数名称:Count_Int_Length函数功能:统计整数位数函数输入:待统计整数通过Value进行传递函数输出:统计结果通过Int_Len返回*******************************************************************************************************/unsigned char Count_Int_Len(long int Value){unsigned char Int_Len = 1;long int Data_Temp;Data_Temp = Value;while(Data_Temp >= 10) //计算数据长度{Data_Temp /= 10;Int_Len ++;}return Int_Len;}/*******************************************************************************************************函数名称:Int_To_Char函数功能:将未知长度整数按位分解,并存于字符数组函数说明:整数长度不超5位函数输入:待分解整数通过Value传递,数据长度通过Value_Len传递函数输出:分解后的数据存放在全局数组变量[]中。*******************************************************************************************************/void Int_To_Char(long int Value, unsigned char Value_Len){unsigned char x; //定义循环变量long int Data_Temp; //定义数据临时变量,数据长度Data_Temp = Value;for(x = 0; x < Value_Len; x++) //对数组进行赋值,从低位到高位{Int_Bit[Value_Len - x - 1] = Data_Temp % 10;Data_Temp /= 10;}}
打开App,查看更多内容
随时随地看视频慕课网APP