Hoe u de array wilt afdrukken?

Ik kan niet in staat om de array te laten afdrukken. Eventuele ideeën waarom? Ik ben een beginprogrammeur zodat alle woorden van advies worden gewaardeerd.


Antwoord 1, Autoriteit 100%

Wat u aan het doen bent, is de waarde in de array afdrukken op Spot [3] [3], die ongeldig is voor een 3By3-array, moet u over alle plekken lopen en ze afdrukken.

for(int i = 0; i < 3; i++) {
    for(int j = 0; j < 3; j++) {
        printf("%d ", array[i][j]);
    }
    printf("\n");
} 

Hiermee wordt deze gedrukt in het volgende formaat

10 23 42
1 654 0
40652 22 0

Als u meer exacte opmaak wilt, moet u wijzigen hoe de prentf is geformatteerd.


Antwoord 2, Autoriteit 31%

Er is geen .length eigenschap in C. Het eigendom van de .length kan alleen worden toegepast op arrays in objectgeoriënteerde programmeerkeuze (OOP). Het eigendom van de .lengte wordt geërfd van de objectklasse; de klas alle andere klassen en amp; objecten erven van in een OOP-taal. Ook zou men gebruiken. Lengte-1 om het aantal van de laatste index in een array te retourneren; Het gebruik van alleen de .lengte zal de totale lengte van de array retourneren.

Ik zou zoiets voorstellen:

int index;
int jdex;
for( index = 0; index < (sizeof( my_array ) / sizeof( my_array[0] )); index++){
   for( jdex = 0; jdex < (sizeof( my_array ) / sizeof( my_array[0] )); jdex++){
        printf( "%d", my_array[index][jdex] );
        printf( "\n" );
   }
}

De regel (sizeof( my_array ) / sizeof( my_array[0] )) geeft u de grootte van de betreffende array. De eigenschap sizeof retourneert de lengte in bytes, dus men moet de totale grootte van de array in bytes delen door het aantal bytes waaruit elk element bestaat. Elk element neemt 4 bytes in beslag omdat elk element respectievelijk van het type int is. De array heeft een totale grootte van 16 bytes en elk element is 4 bytes, dus 16/4 levert 4 op het totale aantal elementen in je array omdat indexering begint bij 0 en niet bij 1.


Antwoord 3, autoriteit 9%

Het lijkt erop dat je een typfout in je array hebt, deze zou moeten luiden:

int my_array[3][3] = {...

Je hebt niet de _of de {.

Ook my_array[3][3]is een ongeldige locatie. Aangezien computers beginnen te tellen bij 0, heb je toegang tot positie 4. (Arrays zijn zo raar).

Als je alleen het laatste element wilt:

printf("%d\n", my_array[2][2]);

Als je de hele array wilt:

for(int i = 0; i < my_array.length; i++) {
  for(int j = 0; j < my_array[i].length; j++)
    printf("%d ", my_array[i][j]);
  printf("\n");
}

Antwoord 4, autoriteit 3%

Je zou dit kunnen proberen:

#include <stdio.h>
int main() 
{  
  int i,j;
  int my_array[3][3] ={10, 23, 42, 1, 654, 0, 40652, 22, 0};
  for(i = 0; i < 3; i++) 
  {
       for(j = 0; j < 3; j++) 
       {
         printf("%d ", my_array[i][j]);
       }
    printf("\n");
  } 
  return 0;
}

Antwoord 5

Als u de array wilt afdrukken zoals u een 2D-lijst in Python afdrukt:

#include <stdio.h>
int main()
{
  int i, j;
  int my_array[3][3] = {{10, 23, 42}, {1, 654, 0}, {40652, 22, 0}};
  for(i = 0; i < 3; i++)
  {
      if (i == 0) {
          printf("[");
      }
      printf("[");
      for(j = 0; j < 3; j++)
      {
         printf("%d", my_array[i][j]);
         if (j < 2) {
             printf(", ");
         }
      }
    printf("]");
    if (i == 2) {
        printf("]");
    }
    if (i < 2) {
        printf(", ");
    }
  }
  return 0;
}

Uitvoer zal zijn:

[[10, 23, 42], [1, 654, 0], [40652, 22, 0]]

Other episodes