Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 6.2.1
- Napisz funkcję, która dostaje jako argument dodatnie liczby całkowite n i m, tworzy dynamiczną dwuwymiarową tablicę tablic elementów typu int o wymiarach n na m, i zwraca jako wartość wskaźnik
- do niej.
- int** alokuj(unsigned int n, unsigned int m){
- int **t=malloc(n*sizeof(int*)); //tablica wskaźnikow rozmiaru n
- int i;
- for(i=0;i<n;i++)
- {
- t[i]=malloc(m*sizeof(int));
- }
- return t;
- }
- alternA
- #include <stdio.h>
- #include <stdlib.h>
- void laczenie(char *tab, char*tab1){
- int i=0;
- while(tab[i]!=0)
- {
- i++;
- }
- int j=0;
- while(tab1[j]!=0){
- tab[i]=tab1[j];
- j++;
- i++;
- }
- tab[i]=tab1[j];
- }
- int main()
- {
- char tab[255]="dfdfdafdfaghjhjj";
- char tab1[255] = "appak";
- printf("%s ",tab);
- laczenie(tab,tab1);
- printf("%s ",tab);
- return 0;
- }
- 6.2.2.Napisz funkcję, która dostaje jako argument dodatnie liczby całkowite n i m, tworzy dynamiczną dwuwymiarową tablicę elementów typu int o wymiarach n na m i zwraca jako wartość wskaźnik do niej.
- int(* alokuj2(unsigned int n, unsigned int m))[]{
- return malloc(n*sizeof(int[m]));
- }
- 6.2.3.
- Napisz funkcję, która dostaje jako argumenty wskaźnik do dwuwymiarowej tablicy tablic elementów typu int oraz jej wymiary: dodatnie liczby całkowite n i m, i usuwa z pamięci otrzymaną tablicę.
- void zwolnij(unsigned int n, unsigned int m, int **t){
- int i;
- for(i=0;i<n;i++)
- {
- free(t[i]);
- }
- free(t);
- }
- 6.2.4.
- Napisz funkcję, która dostaje jako argumenty wskaźnik do tablicy dwuwymiarowej elementów typu int oraz jej wymiary wymiary
- n i m, i usuwa z pamięci otrzymaną tablicę.
- void zwolnij2(unsigned int n, int t[][n]){
- free(t);
- }
- 6.2.7. Napisz funkcję, która dostaje jako argument dodatnią liczbę całkowitą n, tworzy dynamiczną dwuwymiarową trójkątną tablicę tablic elementów typu int o wymiarach n na n i zwraca jako wartość wskaźnik do niej.
- int** alokujtrojkatna(unsigned int n){
- int **t=malloc(n*sizeof(int*));
- int i;
- for(i=0;i<n;i++)
- {
- t[i]=malloc((i+1)*sizeof(int));
- }
- return t;
- }
- 6.2.8
- Napisz funkcję, która dostaje w argumentach dwuwymiarową tablicę elementów typu int, o pierwszym wymiarze podanym jako drugi
- argument funkcji oraz drugim wymiarze równym 100 i wypełnia ją
- zerami
- void zeruj(int t[][100], unsigned int n){
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<100;j++)
- {
- t[i][j]=0;
- }
- }
- }
- 6.2.9.Napisz funkcję, która dostaje w argumentach dwuwymiarową tablicę tablic elementów typu int oraz jej wymiary n i m, i wypełnia ją
- zerami.
- void zeruj2(int** t, unsigned int n,unsigned int m){
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- t[i][j]=0;
- }
- }
- }
- 6.2.10 Napisz funkcję, która dostaje w argumentach tablicę dwuwymiarową elementów typu int oraz jej wymiary n i m, i wypełnia ją
- zerami.
- void zeruj3(unsigned int n,unsigned int m, int t[][m]){
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- t[i][j]=0;
- }
- }
- }
- 6.2.11 Napisz funkcję, która dostaje w argumentach tablicę dwuwymiarową
- elementów typu int, o pierwszym wymiarze podanym jako drugi argument funkcji oraz drugim wymiarze równym 100, która to funkcja
- zwraca jako wartość sumę wartości elementów tablicy
- int suma(int t[][100], unsigned int n){
- int i,j;
- int S=0;
- for(i=0;i<n;i++)
- {
- for(j=0;j<100;j++)
- {
- S=S+t[i][j];
- }
- }
- return S;
- }
- 6.2.12 Napisz funkcję, która dostaje w argumentach dwuwymiarową tablicę tablic o elementach typu int oraz jej wymiary n i m, i zwraca jako wartość sumę wartości elementów tablicy.
- void suma2(int** t, unsigned int n,unsigned int m){
- int i,j;
- int S=0;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- S=S+t[i][j];
- }
- }
- }
- 6.2.13
- Napisz funkcję, która dostaje w argumentach tablicę dwuwymiarową o elementach typu int oraz jej wymiary n i m, i zwraca jako
- wartość sumę wartości elementów tablicy
- int suma3(unsigned int n,unsigned int m, int t[][m]){
- int i,j;
- int S=0;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- S=S+t[i][j];
- }
- }
- }
- 6.2.14
- Napisz funkcję, która dostaje w argumentach tablicę trójwymiarową o elementach typu int o wymiarach 100 × 100 × 100, i zwraca
- jako wartość sumę wartości elementów tablicy
- int suma4(int t[][100][100]){
- int i,j,k;
- int S=0;
- for(i=0;i<100;i++)
- {
- for(j=0;j<100;j++)
- {
- for(k=0;k<100;k++)
- {
- S=S+t[i][j][k];
- }
- }
- }
- return S;
- }
- 6.2.15
- 5 Napisz funkcję, która dostaje w argumentach dodatnią liczbę całkowitą n oraz tablicę trójwymiarową o elementach typu int o wymiarach
- n × 100 × 100, i zwraca jako wartość sumę wartości elementów otrzymanej tablicy
- int suma5(unsigned int n, int t[][100][100]){
- int i,j,k;
- int S=0;
- for(i=0;i<n;i++)
- {
- for(j=0;j<100;j++)
- {
- for(k=0;k<100;k++)
- {
- S=S+t[i][j][k];
- }
- }
- }
- return S;
- }
- 6.2.16 Napisz funkcję, która dostaje jako argumenty dwuwymiarową tablicę tablic o elementach typu int oraz jej wymiary, i zwraca jako
- wartość indeks wiersza o największej średniej wartości elementów.
- Przyjmujemy, że dwa elementy leżą w tym samym wierszu, jeżeli mają
- taki sam pierwszy indeks.
- int indeks_wiersza(int **t, unsigned int n, unsigned int m){
- int i,j;
- int S,max,indeks;
- for(i=0;i<n;i++)
- {
- S=0;
- for(j=0;j<m;j++)
- {
- S=S+t[i][j];
- }
- if (i==0) ///wartosci poczatkowe dla pierwszego wiersza
- {
- max=S;
- indeks=0;
- }
- if (max<S)
- {
- max=S;
- indeks=i;
- }
- }
- return indeks;
- }
- 6.2.17
- ) Napisz funkcję, która dostaje jako argumenty dwuwymiarową tablicę tablic o elementach typu int oraz jej wymiary, i zwraca największą spośród średnich wartości elementów poszczególnych wierszy.
- Przyjmujemy, że dwa elementy leżą w tym samym wierszu, jeżeli mają
- taki sam pierwszy indeks.
- int indeks_wiersza2(int **t, unsigned int n, unsigned int m){
- int i,j;
- int S,max;
- for(i=0;i<n;i++)
- {
- S=0;
- for(j=0;j<m;j++)
- {
- S=S+t[i][j];
- }
- if (i==0) ///wartosci poczatkowe dla pierwszego wiersza
- {
- max=S;
- }
- if (max<S)
- {
- max=S;
- }
- }
- return (double)(S/m);
- }
- 6.2.18
- Napisz funkcję, która dostaje jako argument dwuwymiarową tablicę
- tablic o elementach typu int oraz jej wymiary, i wypisuje jej zawartość
- na standardowym wyjściu w taki sposób, żeby kolejne wiersze tablicy zostały wypisane w oddzielnych wierszach standardowego wyjścia.
- void wypisz(int **t, unsigned int n, unsigned int m){
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- printf("%d\t",t[i][j]);
- }
- printf("\n");
- }
- }
- 6.2.19 Napisz funkcję, która dostaje jako argumenty dwie dwuwymiarowe tablice tablic o elementach typu int oraz ich wymiary, i przepisuje zawartość pierwszej tablicy do drugiej tablicy.
- void przepisz(int **t1, int **t2, unsigned int n, unsigned int m){
- int i,j;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- t2[i][j]=t1[i][j];
- }
- }
- }
- 6.2.20
- Napisz funkcję, która dostaje jako argumenty dwie dwuwymiarowe tablice tablic o elementach typu int oraz ich wymiary, i zamienia zawartości obu tablic.
- void zamien(int **t1, int **t2, unsigned int n, unsigned int m){
- int i,j,pom;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- pom=t2[i][j];
- t2[i][j]=t1[i][j];
- t1[i][j]=pom;
- }
- }
- }
- 6.2.21 Napisz funkcję, która dostaje jako argumenty dwuwymiarową tablicę tablic o elementach typu int oraz jej wymiary, i odwraca kolejność elementów we wszystkich wierszach otrzymanej tablicy (przyjmujemy, że dwa elementy tablicy leżą w tym samym wierszu, jeżeli
- mają taką samą pierwszą współrzędną).
- void odwroc_wiersze(int **t, unsigned int n, unsigned int m){
- int i,j,pom;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m/2;j++)
- {
- pom=t[i][j];
- t[i][j]=t[i][m-1-j];
- t[i][m-1-j]=pom;
- }
- }
- }
- 6.2.22
- Napisz funkcję, która dostaje jako argumenty tablicę dwuwymiarową o elementach typu int oraz jej wymiary, i odwraca kolejność
- elementów we wszystkich wierszach otrzymanej tablicy (przyjmujemy, że dwa elementy tablicy leżą w tym samym wierszu, jeżeli mają
- taką samą pierwszą współrzędną)
- void odwroc_wiersze2(unsigned int n, unsigned int m, int t[][n]){
- int i,j,pom;
- for(i=0;i<n;i++)
- {
- for(j=0;j<m/2;j++)
- {
- pom=t[i][j];
- t[i][j]=t[i][m-1-j];
- t[i][m-1-j]=pom;
- }
- }
- }
- 6.2.23
- Napisz funkcję, która dostaje jako argumenty dwuwymiarową
- tablicę tablic o elementach typu int oraz jej wymiary, i zmienia kolejność wierszy w tablicy w taki sposób, że wiersz pierwszy ma się znaleźć na miejscu drugiego, wiersz drugi ma się znaleźć na miejscu trzeciego itd., natomiast ostatni wiersz ma się znaleźć na miejscu pierwszego (przyjmujemy, że dwa elementy tablicy leżą w tym samym wierszu jeżeli mają taką samą pierwszą współrzędną).
- void wiersze_w_dol(int **t, unsigned int n, unsigned int m){
- int i,j,pom;
- for(j=0;j<m;j++)
- {
- pom=t[n-1][j];
- for(i=n-1;i>0;i--)
- {
- t[i][j]=t[i-1][j];
- }
- t[0][j]=pom;
- }
- }
- 6.2.24
- Napisz funkcję, która dostaje jako argumenty dwuwymiarową tablicę tablic o elementach typu int oraz jej wymiary, i zmienia kolejność kolumn w tablicy w taki sposób, że kolumna pierwsza ma się znaleźć na miejscu drugiej, kolumna druga ma się znaleźć na miejscu trzeciej
- itd., natomiast ostatnia kolumna ma się znaleźć na miejscu pierwszej (przyjmujemy, że dwa elementy tablicy leżą w tej samej kolumnie, jeżeli mają taką samą drugą współrzędną).
- void kolumny_w_prawo(int **t, unsigned int n, unsigned int m){
- int i,j,pom;
- for(i=0;i<n;i++)
- {
- pom=t[i][m-1];
- for(j=m-1;j>0;j--)
- {
- t[i][j]=t[i][j-1];
- }
- t[i][0]=pom;
- }
- }
- 6.2.25
- Napisz funkcję, która dostaje jako argumenty dwuwymiarową kwadratową tablicę tablic tab o elementach typu int oraz jej wymiar,
- i zmienia kolejność elementów w otrzymanej tablicy w następujący
- sposób: dla dowolnych k i j element tab[k][j] ma zostać zamieniony
- miejscami z elementem tab[j][k]
- void zamiana_miejsc(int **t, unsigned int n){
- int i,j,pom;
- for(i=1;i<n;i++)
- {
- for(j=0;j<i;j++)
- {
- pom=t[i][j];
- t[i][j]=t[j][i];
- t[j][i]=pom;
- }
- }
- }
- 6.2.6 Napisz funkcję, która dostaje jako argumenty dwuwymiarową prostokątną tablicę tablic tab1 o wymiarach n × m i elementach typu int
- oraz jej wymiary, i zwraca jako wartość wskaźnik do nowo utworzonej
- dwuwymiarowej tablicy tablic tab2 o wymiarach m × n zawierającej
- int** transpozycja(int **t1, unsigned int n, unsigned m){
- int **t2=malloc(n*m*sizeof(int));
- int i,j,pom;
- // int t2[m][n];
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- t2[j][i]=t1[i][j];
- }
- }
- return t2;
- }
- 6.2.7
- Napisz funkcję, która dostaje jako argumenty dodatnią liczbę całkowitą n oraz trójwymiarową tablicę tablic tab elementów typu int o wymiarach n×n×n, i zamienia elementy tablicy w taki sposób, że dla dowolnych i, j, k z zakresu od 0 do n − 1, wartość z komórki tab[i][j][k] po wykonaniu funkcji ma się znajdować w komórce tab[k][i][j].
- void zamiana_trojwymiarowej(int ***t, unsigned int n){
- int i,j,k,pom;
- for(i=1;i<n;i++)
- {
- for(j=i;j<n;j++)
- {
- if(i==j)
- {
- k=i;
- }
- else
- {
- k=i+1;
- }
- for(;k<n;k++)
- {
- pom=t[i][j][k];
- t[i][j][k]=t[j][k][i];
- t[j][k][i]=t[k][i][j];
- t[k][i][j]=pom;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement