Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Błędne wypisywanie wartości tablicy ręcznie inicjalizowanej (C, Visual)

Ostatnio zmodyfikowano 2014-11-27 21:18
Autor Wiadomość
krzysztof.kolski
Temat założony przez niniejszego użytkownika
Błędne wypisywanie wartości tablicy ręcznie inicjalizowanej (C, Visual)
» 2014-11-27 14:50:56
C/C++
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define M 10

void funcof( int tab[][ M ], int n, int m ); //generuje elementy tablicy o wartościach (nr kolumny + nr wierszu)
void wypisz( int tab[][ M ], int n, int m );
int prol[ 3 ][ 4 ] = {
    { 1, 4, 2, 5 }, /* pierwszy wiersz */
    { 5, 4, 3, 4 }, /* drugi wiersz */
    { 8, 7, 4, 8 } /* trzeci wiersz */
};
int main() { int t1[ N ][ M ];
   
   
    wypisz( prol, 3, 4 ); //tutaj drugi i trzeci wiersz jest dziwny
    funcof( t1, N, M );
    wypisz( t1, N, M ); //tutaj jest wypisywane tak jak trzeba bo tablica t1 nie jest wypełniana przy dekalrownaniu ale prze funkcje funcof
    system( "pause" );
    return 0;
}

void funcof( int tab[][ M ], int n, int m ) { int i, j;
    for( i = 0; i < n; i++ )
    for( j = 0; j < m; j++ )
         tab[ i ][ j ] = i + j;
   
}
void wypisz( int tab[][ M ], int n, int m ) { int i, j;
    printf( "\n" );
    for( i = 0; i < n; i++ )
    for( j = 0; j < m; j++ )
         printf( "%d%c", tab[ i ][ j ], j < m - 1 ? '\t'
        : '\n' );
   
    printf( "\n" );
}
Problem polega na tym że jeśli inicjalizuje tablice przy deklaracji, tzn instrukcjami w klamrach ("{{...},{...}}") to wiersze tej tablicy poniżej pierwszego są błędnie widziane w funkcji wypisz. Nie mogę dojść dlaczego. Gdzie robie błąd?
Program napisany jest w C ,kompilowałem w visual'u.
P-121542
michal11
» 2014-11-27 15:10:36
A jakieś szczegółowe informacje ? Co się wypisuje ? Co to znaczy "drugi i trzeci wiersz jest dziwny" ?
P-121545
krzysztof.kolski
Temat założony przez niniejszego użytkownika
» 2014-11-27 18:27:13
Jest dziwny bo w tych miejscach gdzie powinna być liczba zainicjalizowana przeze mnie są jakieś śmieci typu -81678 itd
P-121557
Monika90
» 2014-11-27 21:18:48
M to 10, a tutaj drugi wymiar tablicy to 4
C/C++
int prol[ 3 ][ 4 ] = {
nie pasują do siebie...
P-121575
« 1 »
  Strona 1 z 1