Tablice wielowymiarowe

Tablice wielowymiarowe
FA
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 3 lata
0

Witam mam taki problem. Oto kod programu:

Kopiuj
#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 :(

edytowany 1x, ostatnio: kq
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:dzień
  • Lokalizacja:Szczecin
6

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


spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:około miesiąc
4
Kopiuj
#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.

Kopiuj
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

edytowany 1x, ostatnio: spartanPAGE
kq
&lt;cpp&gt;. Mniej pisania i są kolorki!
spartanPAGE
@kq bardziej zależało mi na zaznaczeniu tego jednego konkretnego detalu, którego zabrakło autorowi
kq
Dopiero zauważyłem, że masz kolorowanie dla diffa (myślałem, że nagie code). Fajna sprawa, nie wiedziałem, że coś takiego mamy :)
FA
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 3 lata
0

Dzięki wielkie wszystkim :)

FA
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 3 lata
0
Kopiuj
#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 ?

edytowany 1x, ostatnio: fasolus
predek97
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 2 lata
  • Postów:7
0
Kopiuj
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.

Kopiuj
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");
    }
}
edytowany 1x, ostatnio: predek97

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.