2015-03-25 3 views
4

мне нужно напечатать некоторые начальные пробелы и нули перед номером, так что выход будет выглядеть следующим образом:печати ведущие пробелы и нули в C

00015 
    22 
00111 
    8 
    126 

здесь, мне нужно напечатать leading spaces, когда число even и leading zero когда odd

Вот как я это сделал:

int i, digit, width=5, x=15; 

if(x%2==0) // number even 
{ 
    digit=log10(x)+1; // number of digit in the number 
    for(i=digit ; i<width ; i++) 
     printf(" "); 
    printf("%d\n",x); 
} 
else  // number odd 
{ 
    digit=log10(x)+1; // number of digit in the number 
    for(i=digit ; i<width ; i++) 
     printf("0"); 
    printf("%d\n",x); 
} 

есть ли ярлык способ сделать это?

ответ

14

Для печати leading space and zero вы можете использовать это:

int x = 119, width = 5; 

// Leading Space 
printf("%*d\n",width,x); 

// Leading Zero 
printf("%0*d\n",width,x); 

Таким образом, в программе просто изменить:

int i, digit, width=5, x=15; 

if(x%2==0) // number even 
    printf("%*d\n",width,x); 
else  // number odd 
    printf("%0*d\n",width,x); 
Смежные вопросы