2017-01-27 14 views
-1

私は配列に4つの数字、00,11,22,33を保存します。乱数を生成して印刷すると、00ではなく、0と表示されます(最初の要素が選択されている場合)。他の数字は正常で、正しく表示されています。どのように正しく表示されるように00を配列に格納できますか? 11は明らか1異なる数である00を配列に格納する方法は?

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main() 
{ 
    srand(time(NULL)); 
    int myArray[4] = { 00,11,22,33 }; 
    int randomIndex = rand() % 4; 
    int randomIndex1 = rand() % 4; 
    int randomIndex2 = rand() % 4; 
    int randomIndex3 = rand() % 4; 

    int randomValue = myArray[randomIndex]; 
    int randomValue1 = myArray[randomIndex1]; 
    int randomValue2 = myArray[randomIndex2]; 
    int randomValue3 = myArray[randomIndex3]; 
    printf("= %d\n", randomValue); 
    printf("= %d\n", randomValue1); 
    printf("= %d\n", randomValue2); 
    printf("= %d\n", randomValue3); 

    return(0); 
} 
+0

Umm、00は0です。プログラムが正しく表示されています。 –

+3

書式や字下げが気にならないでください。インデントはネストされたものだけです。また、整数と文字列/文字シーケンスの違いについても読んでください。 – Olaf

答えて

2

00数は、0数と全く同じです。

代わりに文字列を格納することを検討してください。また、あなたは、フォーマット文字列として%02dを使用して00、ちょうど2文字表示したい場合:これは本当にあなたの全体のプログラムであれば

printf("= %02d\n", randomValue); 

を、あなたも自分の配列を変更することができ、その後、印刷値は二回例:

int myArray[4] = {0,1,2,3}; 
. . . 
printf("= %d%d\n", randomValue, randomValue); 
0

ゼロパディングして乱数を出力します%02dスキャンコード:また

printf("%02d\n", randomValue); 
// Expected output for 0: 00 
         ^
        This 0 belongs to the scan code 

%2dスキャンコードはあなたのための空白のパディングを行います:

  • 0はオプションであり、それは数字に属しており、それが使用されている場合、それは以下となります。一般%(0)NM

    printf("%2d\n", randomValue); 
    // Expected output for 0: 0 
             ^
            This space belongs to the scan code 
    

    をスキャンコードです出力にゼロパディングを追加する。使用されていない場合は、空白スペースを追加します。

  • Nは、印刷する桁数/文字数などです。 2

  • Mは、データタイプを表示する必要があるスキャンコードです。 {d, x, c, s, ...}あなたはスキャンコードhereの完全なリストを見つけることができます{number, hexadecimal number, character, string, ...}

放置。

関連する問題