JW 發問時間: 電腦與網際網路程式設計 · 2 0 年前

C 陣列問題

請問我要用16*16印出一個陣列用很多個c印出一個大c出來

有除了char c [16][16]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},..........{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

更方便的方法嗎???一次打256個很累的說........

2 個解答

評分
  • 最佳解答

    /*

    樓上的別鬧了....

    使用bit, 16 *16 = 256bit = 32byte

    C語言unsigned long 佔4byte 所以需要 8 個

    在此用 8 * 8 的做範例 ( 16 * 16 太大了..懶得畫... )

    64點使用64bit=8byte

    , 所以要2個

    00000000=0x00

    00011100=0x1C

    01000000=0x40

    10000000=0x80

    10000000=0x80

    10000000=0x80

    01000000=0x40

    00011100=0x1C

    */

    unsigned long c[2] = { 0x001C4080, 0x8080401C };

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

    for( j = 0; j < 4; j++ ) {

    for( k = 0; k < 8; k++ ) {

    if( ( c[i] & 0x80000000 ) != 0 )

    printf("C");

    else

    printf(" ");

    c[i] <<= 1;

    }

    printf("\n");

    }

    }

    ****

    // 如果是 16 * 16 的話, 程式碼變成

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

    for( j = 0; j < 2; j++ ) {

    for( k = 0; k < 16; k++ ) {

    if( ( c[i] & 0x80000000 ) != 0 )

    printf("C");

    else

    printf(" ");

    c[i] <<= 1;

    }

    printf("\n");

    }

    }

    *****

    陣列先複製一份, 要不然裡面設定的值會不見

    2005-12-03 23:13:56 補充:

    看不懂...???

    唉...u_u

  • 2 0 年前

    用for迴圈就可以了^^

    char c[16][16];

    int i,j;

    for( i=0;i<16;i++)

    {

    for(j=0;i<16;i++)

    {

    c[i][j] = 1;

    }

    }

    參考資料: 自己
還有問題?馬上發問,尋求解答。