1

値をスキャンして、4 桁になるまで数値の前に 0 を追加したいと考えています。

例:

scanf("%d",&value); //entering '4'..modify the scan somehow with format specifier?  
printf("%d",value); //prints 0004

または別の例:

scanf("%d",&value); //entering '12'  
printf("%d",value); //prints 0012

または別の例:

scanf("%d",&value); //entering '123'  
printf("%d",value); //prints 0123

スキャンされた値がすでに 4 桁の長さの場合は無視します。

printf("%04d",value) のようなフォーマット指定子がありますが、スキャン ステートメントでフォーマットを指定することは私にとって非常に重要です。

入力:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

私の出力

            _______1_______
           /                  \
     __2__                __3__
    /        \              /        \
     4         5             6         7
  / \        / \          / \        / \
 8     9    10   11     12    13    14   15

すべての桁の長さが 4 である状況をハードコーディングしたため、希望どおりに並べられていません。

望ましい出力:(きれいに整列するため)

                _______0001_______
               /                  \
         __0002__                __0003__
        /        \              /        \
      0004      0005          0006      0007
      / \        / \          / \        / \
   008   009  0010 0011   0012  0013  0014 0015

現在の呼び名:

int main()
{
int q[100];
int inputValue;
int qSize=1;

while (inputValue != -1) //scanning until -1 is reached
   {
   cin >> inputValue; //here is each number

//What can I add here to make it 4 digits long? (i.e. adding 0's)

   if (inputValue != -1)
    insertAndSort (q, qSize, inputValue); //sorts a heap
   }

 drawSortedTree (q, qSize);//output
}
4

3 に答える 3

0

これを行う:

scanf("%d", &value);    //entering '12'  
printf("%04d", value);  //prints 0012
于 2014-10-28T00:04:04.080 に答える