View difference between Paste ID: jJzZdhVC and 82rEWCXg
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#include <stdlib.h>
3
/*
4
(25 pkt) Napisz funkcję, która dostaje jako parametr dynamiczną dwuwymiarową tablicę liczb
5
całkowitych i jej wymiary n, m. Funkcja ma zwrócić 1, jeśli na brzegach (tzn. w pierwszym
6
i ostatnim wierszu oraz w pierwszej i ostatniej kolumnie) tablicy występują wartości tylko
7
niezerowe; w przeciwnym razie funkcja ma zwrócić 0.
8
*/
9
int funkcja(int **tab, int n, int m){
10
    // mozemy zrobic 2 fory - jeden do sprawdzenia dwoch kolumn na brzegach, drugi do sprawdznia pierwszego i ostatniego wiersza
11
    int i; // to nam do fora potrzebne
12
    // tab[n][m] - n - wiersze m - kolumny
13
    for(i=0;i<n;i++){ // sprawdzamy pierwssza i ostatnia kolumne
14
        if((tab[i][0] == 0) || (tab[i][m-1] == 0)){ // jesli pojawia sie jakas wartosc zerrowa
15
            return 0; // zwracamy zero
16
           // break; // konczymy funkcje
17
           printf("%i", tab[i][i]);
18
        }
19
20
    }
21
    for(i=0;i<m;i++){ // sprawdzamy pierwszy i ostatni wiersz
22
        if((tab[0][i] == 0) || tab[n-1][i] == 0){ // dajemy n-1 bo nie ma elementu tab[3] bo tablica konczy sie na tab[2]
23
            return 0;
24
            break;
25
        }
26
27
    }
28
    // Jesli funkcja nie została wczesniej przerwana, to znaczy ze na krawedziach nie ma wartosci zerowyc i mozemy zwrocic 0
29
    return 1;
30
}
31
int main()
32
{
33
    int i;
34
    int **tab;
35
    tab=(int**)malloc(3*sizeof(int *));
36
    for(i=0;i<3;i++)
37
        tab[i]=(int *)malloc(3*sizeof(int));
38
    tab[0][0] = 1;
39
    tab[0][1] = 1;
40
    tab[0][2] = 1;
41
    tab[1][0] = 1;
42
    tab[1][1] = 0;
43
    tab[1][2] = 1;
44
    tab[2][0] = 1;
45
    tab[2][1] = 1;
46
    tab[2][2] = 1;
47
    printf("%i",funkcja(tab,3,3));
48
49
50
51
    printf("Hello world!\n");
52
    return 0;
53
}