#include <stdio.h>
#define TRUE 1
#define FALSE 0
typedef struct a
{
unsigned char digit;
unsigned char point;
}A;
void CreateStrForm(char *buffer, A *DATA, unsigned char Is_Signed)
{
unsigned char formLen = DATA->digit;
if(DATA->point != 0) formLen += DATA->point + 1;
buffer[0] = '%';
if(Is_Signed == TRUE)
{
formLen ++;
buffer[1] = '0';
buffer[2] = '+';
buffer[3] = formLen + 48;
buffer[4] = '.';
buffer[5] = DATA->point + 48;
buffer[6] = 'f';
buffer[7] = '\0';
}
else
{
buffer[1] = '0';
buffer[2] = formLen + 48;
buffer[3] = '.';
buffer[4] = DATA->point + 48;
buffer[5] = 'f';
buffer[6] = '\0';
}
}
int main(void) {
// your code goes here
A data = {4, 1};
char buffer[20] = "";
CreateStrForm(buffer, &data, FALSE);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKI2RlZmluZSBUUlVFICAgMQojZGVmaW5lIEZBTFNFICAwCgoKCnR5cGVkZWYgc3RydWN0IGEKewoJdW5zaWduZWQgY2hhciBkaWdpdDsKCXVuc2lnbmVkIGNoYXIgcG9pbnQ7Cn1BOwp2b2lkIENyZWF0ZVN0ckZvcm0oY2hhciAqYnVmZmVyLCBBICpEQVRBLCB1bnNpZ25lZCBjaGFyIElzX1NpZ25lZCkKewoJdW5zaWduZWQgY2hhciBmb3JtTGVuID0gREFUQS0+ZGlnaXQ7CglpZihEQVRBLT5wb2ludCAhPSAwKSBmb3JtTGVuICs9IERBVEEtPnBvaW50ICsgMTsKCQoJYnVmZmVyWzBdID0gJyUnOwoJaWYoSXNfU2lnbmVkID09IFRSVUUpIAoJewoJCWZvcm1MZW4gKys7CgkJYnVmZmVyWzFdID0gJzAnOwoJCWJ1ZmZlclsyXSA9ICcrJzsKCQlidWZmZXJbM10gPSBmb3JtTGVuICsgNDg7CgkJYnVmZmVyWzRdID0gJy4nOwoJCWJ1ZmZlcls1XSA9IERBVEEtPnBvaW50ICsgNDg7CgkJYnVmZmVyWzZdID0gJ2YnOwoJCWJ1ZmZlcls3XSA9ICdcMCc7Cgl9CgllbHNlCgl7CgkJYnVmZmVyWzFdID0gJzAnOwoJCWJ1ZmZlclsyXSA9IGZvcm1MZW4gKyA0ODsKCQlidWZmZXJbM10gPSAnLic7CgkJYnVmZmVyWzRdID0gREFUQS0+cG9pbnQgKyA0ODsKCQlidWZmZXJbNV0gPSAnZic7CgkJYnVmZmVyWzZdID0gJ1wwJzsKCX0KfQppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglBIGRhdGEgPSB7NCwgMX07CgljaGFyIGJ1ZmZlclsyMF0gPSAiIjsKCUNyZWF0ZVN0ckZvcm0oYnVmZmVyLCAmZGF0YSwgRkFMU0UpOwoJcHJpbnRmKGJ1ZmZlciwgKGZsb2F0KTIwMC4xKTsKCXJldHVybiAwOwp9