Gå til innhold

Flerdimensjonell array / tabell i c++


Anbefalte innlegg

Jeg anntar dette kalles en flerdimensjonal tabell, da vi har X og Y.

 

3 ? ? ?

2 ? ? ?

1 ? ? ?

A B C

 

? = tilfeldige tall. 3B kan for eksempel være 82.

 

Det jeg vil er å legge denne tabellen inn i C++. Har lest litt om arrays, men har ikke helt forstått hvordan dette vil bli i kode. Så det hadde vert fint om noen ville hjulpet meg, i det minste på rett vei.

 

Programmet ber bruker skrive ein raw og column, og deretter skal programmet skrive ut informasjonen som ligger i det elementet.

 

I grunn er jeg da altså ute etter et kode eksempel på akkurat dette.

Lenke til kommentar
Videoannonse
Annonse

Også kan du evt bruke C versjonen:

 

int array[3][3];

 

Eksempel:

 

int iArray[3][3], i, j;

cout << "Trykke inn verdier:" << endl;

for(i=0; i<3; i++)
 for(j=0; j<3; j++)
 {
 	cout << "iArray[" << i << "][" << j << "]: ";
 	cin >> iArray[i][j];
 }

cout << "Skriver ut innholdet til iArray: " << endl;

for(i=0; i<3; i++)
 for(j=0; j<3; j++)
 {
 	cout << "iArray[" << i << "][" << j  << "]: " << iArray[i][j] << endl;
 }

 

C++ vektorer kan du jo prøve på selv :)

Endret av ReddBuLL
Lenke til kommentar

her er en som gjør at du kan bruke "hva som helst" til indeksering:

http://nostdal.org/~lars/programming/c/oxy.../util/table.hpp

http://nostdal.org/~lars/programming/c/oxy.../util/table.cpp

 

under kjøring:

edit: ble bedre her: http://paste.lisp.org/display/25008

lars@ibmr52:~/programming/c/oxymora/demo/util$ ./table

tegner brettet

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

 

setter et kryss

tegner brettet

....................

....................

....................

..X.................

....................

....................

....................

....................

....................

....................

 

setter en sirkel

tegner brettet

....................

....................

....................

..X.................

...O................

....................

....................

....................

....................

....................

 

                                                                      #

                                                                    # #

                                                                    #  #

                                                                  # # # #

                                                                  #      #

                                                                # #    # #

                                                                #  #  #  #

                                                              # # # # # # # #

                                                              #              #

                                                            # #            # #

                                                            #  #          #  #

                                                          # # # #        # # # #

                                                          #      #      #      #

                                                        # #    # #    # #    # #

                                                        #  #  #  #  #  #  #  #

                                                      # # # # # # # # # # # # # # # #

                                                      #                              #

                                                    # #                            # #

                                                    #  #                          #  #

                                                  # # # #                        # # # #

                                                  #      #                      #      #

                                                # #    # #                    # #    # #

                                                #  #  #  #                  #  #  #  #

                                              # # # # # # # #                # # # # # # # #

                                              #              #              #              #

                                            # #            # #            # #            # #

                                            #  #          #  #          #  #          #  #

                                          # # # #        # # # #        # # # #        # # # #

                                          #      #      #      #      #      #      #      #

                                        # #    # #    # #    # #    # #    # #    # #    # #

                                        #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #

                                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

                                      #                                                              #

                                    # #                                                            # #

                                    #  #                                                          #  #

                                  # # # #                                                        # # # #

                                  #      #                                                      #      #

                                # #    # #                                                    # #    # #

                                #  #  #  #                                                  #  #  #  #

                              # # # # # # # #                                                # # # # # # # #

                              #              #                                              #              #

                            # #            # #                                            # #            # #

                            #  #          #  #                                          #  #          #  #

                          # # # #        # # # #                                        # # # #        # # # #

                          #      #      #      #                                      #      #      #      #

                        # #    # #    # #    # #                                    # #    # #    # #    # #

                        #  #  #  #  #  #  #  #                                  #  #  #  #  #  #  #  #

                      # # # # # # # # # # # # # # # #                                # # # # # # # # # # # # # # # #

                      #                              #                              #                              #

                    # #                            # #                            # #                            # #

                    #  #                          #  #                          #  #                          #  #

                  # # # #                        # # # #                        # # # #                        # # # #

                  #      #                      #      #                      #      #                      #      #

                # #    # #                    # #    # #                    # #    # #                    # #    # #

                #  #  #  #                  #  #  #  #                  #  #  #  #                  #  #  #  #

              # # # # # # # #                # # # # # # # #                # # # # # # # #                # # # # # # # #

              #              #              #              #              #              #              #              #

            # #            # #            # #            # #            # #            # #            # #            # #

            #  #          #  #          #  #          #  #          #  #          #  #          #  #          #  #

          # # # #        # # # #        # # # #        # # # #        # # # #        # # # #        # # # #        # # # #

          #      #      #      #      #      #      #      #      #      #      #      #      #      #      #      #

        # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #

        #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #

      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

      #                                                                                                                              #

    # #                                                                                                                            # #

    #  #                                                                                                                          #  #

  # # # #                                                                                                                        # # # #

  #      #                                                                                                                      #      #

# #    # #                                                                                                                    # #    # #

    #  #  #                                                                                                                  #  #  #

  # # # # # #                                                                                                                # # # # # #

  #          #                                                                                                              #          #

# #        # #                                                                                                            # #        # #

    #      #  #                                                                                                          #  #      #

  # #    # # # #                                                                                                        # # # #    # #

  #  #  #      #                                                                                                      #      #  #  #

# # # # # #    # #                                                                                                    # #    # # # # # #

            #  #  #                                                                                                  #  #  #

          # # # # # #                                                                                                # # # # # #

          #          #                                                                                              #          #

        # #        # #                                                                                            # #        # #

        #  #      #  #

........

 

edit: ble bedre her: http://paste.lisp.org/display/25008

Endret av lnostdal
Lenke til kommentar

Tilsvarende eksempel som matcher det du var ute etter:

 

#include <oxymora/util/table.hpp>
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>


using namespace std;
using namespace Oxymora;


template<typename T>
void readStdin(T& t, string msg, string on_wrong_input){	
 cout << msg << flush;
 while(!(cin >> t)){
   cout << on_wrong_input;
   cin.clear();
   cin.ignore(numeric_limits<streamsize>::max(), '\n');
   cout << msg << flush;}}


template<typename T>  
inline T toType(std::string const& source){
 std::istringstream iss(source);
 T ret;
 iss >> ret;
 return(ret);}


int main(){
 // This makes sure the random numbers really are random.
 srand(time(0)); srand(time(0));
 
 // 2 dimensional array of ints, with characters as "axis-elements".
 Table<2, int, char> table;

 table['1']['A'] = rand();
 table['1']['B'] = rand();
 table['1']['C'] = rand();
 table['2']['A'] = rand();
 table['2']['B'] = rand();
 table['2']['C'] = rand();
 table['3']['A'] = rand();
 table['3']['B'] = rand();
 table['3']['C'] = rand();

 while(true)
   {char x, y;
     readStdin(x, "Type in the X-axis-thingy: ", "No, I expect a character for the X-axis-thingy: ");
     cin.ignore(numeric_limits<streamsize>::max(), '\n');
     readStdin(y, "Type in the Y-axis-thingy: ", "No, I expect a character for the Y-axis-thingy: ");
     cin.ignore(numeric_limits<streamsize>::max(), '\n');
     cout << "table['" << x << "']['" << y << "']: " << table[x][y] << endl;}}

 

lars@ibmr52:~/programming/c/oxymora/demo/util$ ./table2

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: A

table['1']['A']: 724860259

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: B

table['1']['B']: 712215369

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: A

table['1']['A']: 724860259

Type in the X-axis-thingy:

 

edit:

siden det er _tegn_ som blir brukt til å spesifisere posisjoner på aksene må du gå over til `std::string' om du ønsker å lagre "tall" større enn 9 (altså flere enn étt tegn) .. du bør dog vurdere å bruke heltall på aksene i stedet - da kan ofte ting forenkles (og optimaliseres, om ønskelig) endel

Endret av lnostdal
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...