program wyświetlający macierz w C

fanta
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 11 cze 2009, o 18:53
Płeć: Mężczyzna

program wyświetlający macierz w C

Post autor: fanta »

witam

jak już się domyślacie mam problem.

Treść zadania:
Napisać program w języku C, który zawiera funkcję, która wypełni tablicę dwuwymiarową o rozmiarach WxK w taki sposób, że elementom w parzystych kolumnach są przypisane kolejne liczby naturlane, a reszcie przypisano wartość 0. Tablica przekazywana jest jako argument funkcji. Przykładowa tablica:

1 0 2 0 3
4 0 5 0 6
7 0 8 0 9

Jak narazie napisałem coś takiego:

Kod: Zaznacz cały

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

void pisz(a,w,k)
     int w,k,a[w][k];
{
    int i,j;
    printf("tak wyglada macierz :
");
    for(i=0;i<w;i++)
    {
    printf("
");
    for(j=0;j<k;j++)
    printf("  %d      ",a[i][j]);
}
}

int main()
{
    int W,K;
    printf("Podaj liczbe wierszy: ");
    scanf("%d",&W);
    printf("Podaj liczbe kolumn: ");
    scanf("%d",&K);
  int a[W][K];
  pisz(a,W,K);
  printf("


");
  system("PAUSE");	
  return 0;
}

rozumiem że w funkcji pisz należy zastosować coś w stylu: w%2=0 to pisz 1 i ta jedynka podlega inkrementacji i jezeli x%2=!0 to pisz 0. nie wiem jak to zapisać kodem:/

prosze podpowiedzcie coś.
Awatar użytkownika
argv
Użytkownik
Użytkownik
Posty: 569
Rejestracja: 27 maja 2009, o 01:27
Płeć: Mężczyzna
Podziękował: 51 razy
Pomógł: 66 razy

program wyświetlający macierz w C

Post autor: argv »

W C nie mozesz zadeklarowac tablicy w ten sposob, musisz zaalokowac pamiec dynamicznie.
Juz nie wspominajac o tym, ze wszystkie deklaracje musza byc na poczatku
fanta
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 11 cze 2009, o 18:53
Płeć: Mężczyzna

program wyświetlający macierz w C

Post autor: fanta »

ok odrobine pogrzebalem w necie znalazlem pare przykladowych programow w c++ i sklecilem cos takiego... i nawet dziala:)

Kod: Zaznacz cały

#include <stdio.h>

void wypisz (a,w,k)
int w,k,a[w][k];
{
     int i,j;
	int licznik = 1;
	for (i = 0; i < w; i++) {
            for (j = 0; j < k; j++) {
                if (j % 2 == 0) {
                    a[i][j] = licznik++;
                }
                else {
                    a[i][j] = 0;
                }

                printf("%d ", a[i][j]);
            }
            printf("
");
	}
}
int main()
{
    int W,K;
    printf("Podaj liczbe wierszy: ");
    scanf("%d", &W);
    printf("Podaj liczbe kolumn: ");
    scanf("%d", &K);
    int a[W][K];
    wypisz(a,W,K);

    system ("PAUSE");
    return 0;
}

ODPOWIEDZ