shreyas s Ответов: 2

Ошибка с выводом, когда я использовал 'while'


Выходные данные не перечислены в прямой строке, мой код находится ниже

Что я уже пробовал:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int noofpotato=1;
    int day=1;
    int month=1;
    
        while(month<=12){
         printf("Month:%d\t\t Day:%d\t\t Potato:%d\n",month,day,noofpotato);
         ++month;
         day*=2;
         
     }
 
return 0; 
}

2 Ответов

Рейтинг:
2

CPallini

Если вам нужны правильно выровненные числа (если я вас понял), то попробуйте

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int noofpotato=1;
  int day=1;
  int month=1;

  while(month<=12)
  {
    printf("Month:%2d\tDay:%4d\t Potato:%d\n",month,day,noofpotato);
    ++month;
    day*=2;
  }
  return 0;
}


shreyas s

а если я хочу, чтобы цифры были напечатаны в "выравнивании по левому краю"?
например:
9
10
100
11232

CPallini

Видеть здесь:
https://www.lemoda.net/c/printf-left-justify/

shreyas s

Tyvm;

Рейтинг:
2

Bryian Tan

вы можете сделать что-то вроде правильного заполнения, как показано ниже

printf("Month:%6d\t\t Day:%6d\t\t Potato:%d\n",month,day,noofpotato);


Выход:
Month:     1		 Day:     1		 Potato:1
Month:     2		 Day:     2		 Potato:1
Month:     3		 Day:     4		 Potato:1
Month:     4		 Day:     8		 Potato:1
Month:     5		 Day:    16		 Potato:1
Month:     6		 Day:    32		 Potato:1
Month:     7		 Day:    64		 Potato:1
Month:     8		 Day:   128		 Potato:1
Month:     9		 Day:   256		 Potato:1
Month:    10		 Day:   512		 Potato:1
Month:    11		 Day:  1024		 Potato:1
Month:    12		 Day:  2048		 Potato:1


shreyas s

а если я хочу, чтобы цифры были напечатаны в "выравнивании по левому краю"?
например:
9
10
100
1113

shreyas s

Как разместить вывод кода?

Bryian Tan

Тогда вы можете попробовать -6

printf("Month:%-6d\t\t Day:%-6d\t\t Potato:%d\n",month,day,noofpotato);

shreyas s

Спасибо, Брайан Тан.

Bryian Tan

Пожалуйста.