1

与えられた数 n に対して 2 つの等しいエッジを持つ三角形を標準出力に出力する単純なプログラムを C で作成する必要があります。n=3 の場合、出力は次のようになります。

バツ

xx

xxx

ここで、このプログラムの 2 つのバージョンを実行することになっています。 1. メモリ保守。2. 時間厳守。

完全にはわかりませんが、最初のバージョンでは x を一度に 1 つずつ出力し、2 番目のバージョンでは char テーブルを一度に 1 つずつ展開してから出力すると思います。

しかし、複数の単一文字を印刷するよりも char* を印刷する方が速いですか?

4

1 に答える 1

4

観察できないかもしれませんが、文字列全体をメモリに構築してから一度に印刷する方が、理論的には間違いなく高速です。理由は、printf 関数の呼び出しが少なくなるからです。関数を呼び出すたびに、現在のすべてのメソッド変数と現在の場所をスタックにプッシュし、戻った後にポップバックするなど、バックグラウンドで複数のことが起こります。

ただし、前述したように、1960 年代のコンピューターを使用しない限り、これらの各操作に必要な時間は短いため、小さい入力ではこの違いを観察できない場合があります。

于 2013-11-14T09:39:29.500 に答える