Mam zadanie z wydrukowaniem tablicy, gdzie należy wprowadzić wymiar, a program utworzy tablicę z 2 liczbami w każdej komórce: pierwsza liczba jest losowa od 1-3, a druga powinna wynosić zero. Mogę to zrobić tylko z zerem, ale kiedy próbowałem zrobić losową liczbę, wszystko poszło nie tak.. Może ktoś wie, co jest z tym nie tak?

Mapa przesyłania wywołań funkcji:

int randfunc(int i, int n);

int uploadmap(int m,int n){
    int a[m][n];
    int i,j,k;
    // time_t t;
    //srand((unsigned)time(&t));
    //int randnum =  rand() % 3 + 1;
    for(i = 0; i < m;i++){
        printf("+---");

    }
    printf("+\n");
    memset(a,0,sizeof(a));
    for(i = 0;i < m;i++){
        for(j = 0; j < n;j++){
            printf("|%d %d",randfunc(i,n),a[i][j]);
        }
        printf("|\n");
        for(k = 0;k < m;k++){
            printf("+---");

        }
        printf("+\n");
    }
    return 0;
}

Funkcja wywołująca losowe numery od 1 do 3:

int randfunc(int i, int n) {

    time_t t;

    srand((unsigned) time(&t));

    for( i = 0 ; i < n ; i++ ) {
        printf("%d\n", rand() % 3 + 1);
    }

    return 0;
}

Główna funkcja :

int main(int argc, const char * argv[]) {
    int m,n;
    printf("Enter dimension: \n");
    scanf("%d %d",&m, &n);
    printf("Map has been uploaded %d\n",uploadmap(m,n));

    return 0;
}
0
Nikita Shevchenko 1 listopad 2018, 13:53

1 odpowiedź

Najlepsza odpowiedź

Poniższy prosty code może działać:

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

void uploadmap(int m,int n) {
    for (int i = 0;i < m; ++i) {
        for(int j = 0; j < n; ++j)
            printf("|%d 0", (rand() % 3)+1);
        printf("|\n");
    }
}

int main() {
    int m, n;
    printf("Enter dimension: \n");
    scanf("%d %d",&m, &n);
    uploadmap(m,n);

    return 0;
}
-1
Yunbin Liu 1 listopad 2018, 14:20