Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- /* zadanie 4 */
- #define M 5
- void inicjuj(int tab[][M])
- {
- for (int i = 0; i < M; i++)
- {
- for (int j = 0; j < M; j++)
- {
- tab[i][j] = rand() % 201 - 100;
- }
- }
- }
- void displayArray(int tab[][M])
- {
- for (int i = 0; i < M; i++)
- {
- printf("\n");
- for (int j = 0; j < M; j++)
- {
- printf("%d\t", tab[i][j]);
- }
- }
- printf("\n");
- }
- int wyszukaj_elementy(int tab[][M])
- {
- int poprzednik, gornik;
- // srednia arytmetyczna
- int srednia = 0, dividend = 0, divisor;
- divisor = M * M;
- for (int i = 0; i < M; i++)
- {
- for (int j = 0; j < M; j++)
- {
- dividend += tab[i][j];
- }
- }
- srednia = dividend / divisor;
- printf("srednia: %d\n", srednia);
- // sasiedzi
- for (int i = 0; i < M; i++)
- {
- for (int j = 0; j < M; j++)
- {
- j == 0 ? poprzednik = 0 : poprzednik = tab[i][j - 1];
- i == 0 ? gornik = 0 : gornik = tab[i - 1][j];
- if (tab[i][j] + poprzednik == srednia) return 1;
- if (tab[i][j] + gornik == srednia) return 1;
- }
- }
- return 0;
- }
- int main(void)
- {
- int tab[M][M] = { 0 };
- displayArray(tab);
- printf("%d", wyszukaj_elementy(tab));
- inicjuj(tab);
- displayArray(tab);
- printf("%d", wyszukaj_elementy(tab));
- system("pause");
- return 0;
- }
- /* zadanie 5
- #define N 7
- #define M 5
- void displayArray(int tab[][M])
- {
- for (int i = 0; i < N; i++)
- {
- printf("\n");
- for (int j = 0; j < M; j++)
- {
- printf("%d\t", tab[i][j]);
- }
- }
- printf("\n");
- }
- void inicjuj(int tab[][M])
- {
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < M; j++)
- {
- tab[i][j] = rand() % 201 - 100;
- }
- }
- }
- struct point
- {
- int x;
- int y;
- };
- struct point maxIstniejacyIloraz(int tab[][M])
- {
- float iloraz = 0, iloraz_max = -10000.0f;
- int suma_wiersza = 0, suma_kolumny = 0;
- int x, y;
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < M; j++)
- {
- suma_wiersza = 0;
- suma_kolumny = 0;
- // policz sume i-wiersza
- for (int k = 0; k < M; k++)
- {
- suma_wiersza += tab[i][k];
- }
- // policz sume j-kolumny
- for (int k = 0; k < N; k++)
- {
- suma_kolumny += tab[k][j];
- }
- if (suma_kolumny == 0) continue;
- iloraz = suma_wiersza / suma_kolumny;
- printf("\n iloraz == %f\n", iloraz);
- if (iloraz > iloraz_max)
- {
- iloraz_max = iloraz;
- y = i;
- x = j;
- }
- }
- }
- struct point result;
- result.x = x;
- result.y = y;
- return result;
- }
- int main(void)
- {
- srand(time(NULL));
- int tab[N][M];
- inicjuj(tab);
- displayArray(tab);
- struct point c = maxIstniejacyIloraz(tab);
- printf("%d\t%d\n",c.x, c.y);
- system("pause");
- return 0;
- }
- */
- /* zadanie 6
- #define M 5
- void spiralArray(int tab[][M], int start, int limit, int a0, int r);
- void inicjuj_ciagiem_arytmetycznym(int tab[][M], int x0, int r)
- {
- spiralArray(tab,0,M,x0,r);
- }
- void spiralArray(int tab[][M], int start, int limit, int a0, int r)
- {
- int row = start, column = start;
- int a = a0;
- while(column < limit)
- {
- tab[row][column] = a;
- if(column + 1 >= limit) break;
- column++;
- a += r;
- }
- while(row < limit)
- {
- tab[row][column] = a;
- if(row + 1 >= limit) break;
- row++;
- a += r;
- }
- while(column >= start)
- {
- tab[row][column] = a;
- if(column - 1 < start) break;
- column--;
- a += r;
- }
- while(row > start)
- {
- tab[row][column] = a;
- if(row - 1 <= start) break;
- row--;
- a += r;
- }
- if(start + 1 > M/2) return;
- a += r;
- start++;
- limit--;
- spiralArray(tab,start,limit,a,r);
- }
- void displayArray(int tab[][M])
- {
- for(int i = 0; i < M; i++)
- {
- printf("\n");
- for(int j = 0; j < M; j++)
- {
- printf("%d\t",tab[i][j]);
- }
- }
- printf("\n");
- }
- int main(int argc, char** argv)
- {
- int tab[M][M] = {
- { 0,0,0,0,0 },
- { 0,0,0,0,0 },
- { 0,0,0,0,0 },
- { 0,0,0,0,0 },
- { 0,0,0,0,0 }
- };
- displayArray(tab);
- inicjuj_ciagiem_arytmetycznym(tab,2,2);
- displayArray(tab);
- system("pause");
- return 0;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement