2010-04-30 15 views
10

w jaki sposób mogę wydrukować tablicę 2d w c używając scanf do wprowadzania danych przez użytkownika, tablica nazywa się grid [] [] i pętlą for?Drukowanie tablicy 2D w C

powiedzieć, jeśli użytkownik wpisze 3 5, wyjście będzie:

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

Oto kod, który napisałem do tej pory (newbie tutaj):

#include <stdio.h> 

#define MAX 10 

int main() 
{ 
    int grid[MAX][MAX]; 
    int row, col; 
    int i,j; 

    printf("Please enter your grid size: "); 
    scanf("%d %d", &row, &col); 

    for (i=0; i<MAX; i++) 
     for //i gave up here 


} 

ten to tylko niewielka część całego mojego zadania:

Enter number of rows and columns followed by list of words (hit enter twice to end list): 10 15 
quick 
brown 
fox 
jumped 
over 
lazy 
dog 

00 . . . . . . . . . . . . . . . 
01 . . . . . . . . . . . . . . . 
02 . . . . . . . . . . . . . . . 
03 . . . . . . . . . . . . . . . 
04 . . . . . . . . . . . . . . . 
05 . . . . . . . . . . . . . . . 
06 . . . . . . . . . . . . . . . 
07 . . . . . . . . . . . . . . . 
08 . . . . . . . . . . . . . . . 
09 . . . . . . . . . . . . . . . 
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
    0. quick 
    1. brown 
    2. fox 
    3. jumped 
    4. over 
    5. lazy 
    6. dog 

Jony dozwolone i powinny być zawarte w kodzie: Funkcje ciąg - strlen() strcpy() strcat() strchr() strcmp() strstr()

musi wykorzystać 2d tablicy

musi wykorzystać fgets dla słów. Wyjście musi pasować do dokładnego formatu.

+2

Czy to zadanie domowe będzie należne jutro? –

+1

Czy masz kod, który napisałeś, ale nie działa? Pokaż nam, co próbujesz, abyśmy mogli zobaczyć, gdzie utknąłeś. –

+0

nie, w przyszłym tygodniu ... haha ​​ –

Odpowiedz

10

Czy to jakaś pomoc?

#include <stdio.h> 

#define MAX 10 

int main() 
{ 
    char grid[MAX][MAX]; 
    int i,j,row,col; 

    printf("Please enter your grid size: "); 
    scanf("%d %d", &row, &col); 


    for (i = 0; i < row; i++) { 
     for (j = 0; j < col; j++) { 
      grid[i][j] = '.'; 
      printf("%c ", grid[i][j]); 
     } 
     printf("\n"); 
    } 

    return 0; 
} 
+0

Tak, prawie uderzyłeś w gwóźdź w głowę. Dzięki! Czas na tę przerażającą listę słów ... –

+1

@wello horld, wypróbuj małe ćwiczenia z podręcznika lub znajdź samouczek dla początkujących online i wykonaj te ćwiczenia. To jest najlepszy sposób na naukę. Dodatkowa wskazówka, google to twój przyjaciel! Na przykład dobra strona dla fgetów z próbką kodu: http: //www.cplusplus.com/reference/clibrary/cstdio/fgets / – NomeN

-1
... 
for(int i=0;i<3;i++){ //Rows 
for(int j=0;j<5;j++){ //Cols 
printf("%<...>\t",var); 
} 
printf("\n"); 
} 
... 

zważywszy że < ...> byłyby d, e, f, s, c ... itd typ danych ... X)

0

najpierw trzeba wprowadzić dwa numery i powiedzieć num_rows num_columns być może używając argc i argv, następnie wykonaj pętlę for, aby wydrukować kropki.

int j=0; 
int k=0; 
for (k=0;k<num_columns;k++){ 
    for (j=0;j<num_rows;j++){ 
     printf("."); 
    } 
printf("\n"); 
} 

musisz zastąpić kropkę czymś później.

+0

Dwie podane odpowiedzi są świetne, ale nie używają siatki 2d ...? –

+0

OP wspomniał, że wprowadzanie odbywa się za pomocą scanf – NomeN

+0

. A jednak pokazują, jak skonfigurować zagnieżdżone pętle, które trzeba przejść przez siatkę. Nie możemy, z czystego sumienia, bezpośrednio odpowiedzieć. –