Tablice wielowymiarowe

0

Witam mam taki problem. Oto kod programu:

#include <stdio.h>


int i = 0;
int j = 0;


int main()
{
    int tab[3][7];

    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 7; j++)
            printf("%3d", tab[i][j] = i * j);
    }
}

Program wyświetla mi liczby ciurkiem, a nie w tabeli. Chcę, żeby to wyglądało tak:
0 0 0 0 0 0 0
0 1 2 3 4 5 6
0 2 4 6 8 10 12

Powiedzcie proszę co robię źle :(

6

Po każdej liczbie wypisz spację, albo taba: "%3d ".
Po każdym rzędzie wypisz nową linię: printf("\n");

4
#include<stdio.h>
 
 
int i=0;
int j=0;
 
 
int main()
{
  int tab[3][7];
 
  for(i=0; i<3; i++)
    {
      for(j=0; j<7; j++)
    printf("%3d", tab[i][j] = i*j);
+      printf("\n");
    }
}

http://ideone.com/M9Fwh9

ps.

3,8c3
<  
< int i=0;
< int j=0;
<  
<  
< int main()
---
> int main() 
10,15c5,12
<   int tab[3][7];
<  
<   for(i=0; i<3; i++)
<     {
<       for(j=0; j<7; j++)
<     printf("%3d", tab[i][j] = i*j);
---
> 	int tab[3][7];
> 	for(int i=0; i<3; i++)
> 	{
> 		for(int j=0; j<7; j++)
> 		{
> 			printf("%3d", tab[i][j] = i*j);
> 		}
> 		printf("\n");
16a14
>     return 0;

http://ideone.com/awBJJA

0

Dzięki wielkie wszystkim :)

0
#include<stdio.h>
#define wys 10
#define szer 10
int N, M, y, x;
int tab[wys][szer];

void wypelnij(int M, int N)
{
  for(x=0; x<M; x++)
    for(y=0; y<N; y++)
      tab[x][y] = x*y;
}

void wypisz(int M, int N)
{
  for(x=0; x<M; x++)   
      for(y=0; y<N; y++)
	{
	  printf("%5d", tab[x][y]);
	}
          printf("\n");
	  
}



void zmien_znaki(int M, int N)
{
  for(x=0; x<M; x++)
    for(y=0; y<N; y++)
      tab[x][y]= -x*y;
}


int main()
{
  wypelnij(3,7);
  printf("Zawartość oryginalna:\n");
  wypisz(3,7);
  zmien_znaki(3,7);
  printf("Zawartość po zmianie znaków:\n");
  wypisz(3,7);
  return 0;
    }

Tutaj znowu program wypisuje mi liczby w jednej kolumnie zamiast w tabeli 3x7 ? Co jest nie tak ?

0
void wypisz(int M, int N)
{
  for(x=0; x<M; x++)
      for(y=0; y<N; y++)
    {
      printf("%5d", tab[x][y]);
    }
          printf("\n");

}

Jeśli pomijasz nawiasy klamrowe przy pętli to należy do niej tylko pierwsza instrukcja. Przez to, że tutaj pominąłeś klamry, printf("\n") wykonuje się tylko raz.

void wypisz(int M, int N)
{
    for(x=0; x<M; x++)
    {

        for(y=0; y<N; y++)
            printf("%5d", tab[x][y]);
        printf("\n");
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1