Как создать карту со случайными числами внутри в c - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть задача о печатной плате, где вы должны ввести размер, и программа создаст доску с 2 числами внутри каждой ячейки: 1-е число случайное из 1-3, а второе должно быть нулем. Я могу сделать это только с нуля, но когда я попытался сделать случайное число, все пошло не так ... Может кто знает, что с ним не так?

Карта загрузки вызовов функций:

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;
}

функция, которая вызывает случайные числа от 1 до 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;
}

Основная функция:

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;
}

1 Ответ

0 голосов
/ 01 ноября 2018

Может работать следующее простое code:

#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;
}
...