0

私が書いているプログラムで、私はこの変数を宣言しました:

 #define SIZE 5

 long  int clockNum [SIZE] = {98401, 526488, 765349, 34645, 127615};

出力が次のようになるようにこれを印刷したい場合:

098401
526488
765349
034645
127615

これをどのように行いますか?以下のステートメントを試しましたが、機能しないようです。

    for(i = 0; i < SIZE; i++)
    {

    printf ("%li\n",&clockNum[i]);
    }

    return(0);

私が得る出力は次のようになります:

-1076048964
-1076048960
-1076048956
-1076048952
-1076048948
4

3 に答える 3

6

&printfからを削除し、見てみましょう

for(i = 0; i < SIZE; i++)
{
   printf ("%li\n",clockNum[i]);
}

ここでprintf &、変数のアドレス値を指定します

于 2013-02-18T05:54:25.923 に答える
3

実際の値ではなく、指定された値または変数のアドレスを示すため&、行から記号を削除します。printf ("%li\n",&clockNum[i]);

于 2013-02-18T05:56:27.327 に答える
2

printf呼び出しを次のようなものに変更しますprintf ("%li\n",clockNum[i]);

現在のところ、数値の代わりにアドレスを出力しようとしています(ただし、渡すタイプがフォーマット文字列で指定したタイプと一致しないため、結果は未定義の動作になります)。

すべての値が6桁になるように先行ゼロを出力する必要がある場合は、フォーマット文字列をのようなものに変更する必要もあります%6.6li

于 2013-02-18T05:54:33.613 に答える