Facebook
From Rude Pelican, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 593
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. //Dawid Lower
  5. //Pierwszy zestaw zadań - Zadania z języka C.
  6.  
  7. //Zadanie 1.
  8. //Napisz funkcję odwracającą n-elemntową tablicę liczb całkowitych: void inverse(int *tab, int n).
  9. void inverse(int *tab, int rozmiar){
  10.         int i, temp;
  11.         for(i=0 ; i<(rozmiar-1)/2 ; i++){
  12.         temp=tab[i];
  13.         tab[i]=tab[rozmiar-1-i];
  14.         tab[rozmiar-1-i]=temp;
  15.         }
  16. }
  17.  
  18. //Zadanie 2.
  19. //Zadeklarować strukturę reprezentującą lcizby zeespolone oraz napisać funkcję dodającą dwie takie liczby. Funkcja ma przyjmować jako argumenty liczby zespolone oraz zawracać wynik również w postaci zespolonej).
  20. typedef struct _zesp{
  21. float re;
  22. float im;      
  23. }zesp;
  24.  
  25. zesp dodajZespolone(zesp z1, zesp z2){
  26. zesp z3;
  27. z3.re = z1.re + z2.re;
  28. z3.im = z1.im + z2.im;
  29. return z3;     
  30. }
  31.  
  32. //Zadanie 3.
  33. //Napisać funkcję podnoszącą dowoloną liczbę całkowitą a do potęgi n będącej również liczbą całkowitą. Funkcja ma zwracać wynik potęgowania. (Bez użycia funkcji pow!).
  34. float power(int podstawa, float wykladnik){
  35. float wynik = 1;
  36. int i;
  37. for (i=0 ; i<wykladnik; i++){
  38.         wynik = wynik*podstawa;
  39. }      
  40. return wynik;
  41. }
  42.  
  43. //Zadanie 4.
  44. //Napisać funkcję przeszukującą n elementową tablicę liczb całkowitych i znajdującą w niej nawjwiększą i najmniejszą liczbę. Liczby mają być zwrócone do programu głównego w postaci struktury
  45. typedef struct _maxmin{
  46. int max, min;
  47. }maxmin;
  48.  
  49. maxmin maxminSzukaj(int *tab, int n){
  50. int maksimum = -214748364, minimum = 214748364;
  51. int i;
  52. maxmin wynik;
  53. for (i = 0; i < n ; i++){
  54. if (tab[i] > maksimum)
  55.         maksimum = tab[i];     
  56. if (tab[i] < minimum)
  57.         minimum = tab[i];
  58. }
  59. wynik.max = maksimum;
  60. wynik.min = minimum;
  61. return wynik;
  62. }
  63.  
  64. //Zadanie 5.
  65. /*Napisać funkcję sprawzdzającą czy podana liczba całkowita jest parzysta.
  66. Funkcja ma zwracać wartość 1 jeśli liczba jest parzysta, natomiast 0 jeśli liczba jest nieparzysta.*/
  67. int parzysta(int a){
  68. int wynik;
  69. if ((a%2) != 0)
  70.         wynik = 0;
  71. else
  72.         wynik = 1;
  73. return wynik;  
  74. }
  75.  
  76. //Zadanie 6.
  77. /*Napisać funkcję sprawdzającą czy podana jako parametr liczba a jest elementem tablicy liczb całkowitych tab.
  78. Funkcja powinna zwracać: -1 – jeśli liczba nie znajduje się w tablicy,
  79. indeks liczby w tablicy – jeśli tylko jedna liczba a znajduje się w tablicy tab,
  80. indeks pierwszego wystąpienia – jeśli w tablicy tab jest kilka liczb a.*/
  81. int sprawdz(int *tab, int n, int a){
  82. int i, firstI; 
  83. for (i = 0; i < n ; i++){
  84.         if (tab[i] == a){      
  85.                 firstI = i;
  86.                 return firstI; 
  87.         }
  88.         else return -1;        
  89. }      
  90. }
  91.  
  92. //Zadanie 7.
  93. /*Napisać funkcję przepisującą tablicę liczb całkowitych tab do innej tablicy liczb całkowitych tab2, o tej samej liczbie elementów n.
  94. Dodatkowo każda liczba mniejsza od zera z tablicy tab powinan być przepisana jakao zero do tab2.*/
  95. int przepisz(int *tab, int *tab2, int n){
  96. int i; 
  97. for (i = 0; i < n ; i++){
  98.         tab2[i] = tab[i];
  99.         if (tab2[i] < 0) tab2[i] = 0;          
  100. }      
  101. }
  102.  
  103. //Zadanie 8.
  104. /*Napisz funkcję obliczającą średnią arytmetyczną z elementów tablicy liczb całkowitych. Tablica posiada n liczb całkowitych.*/
  105. double srednia(int *tab, int n){
  106. int suma, i;
  107. for (i = 0; i < n ; i++)
  108.         suma += tab[i];
  109. return suma/n;
  110. }
  111.  
  112. //Zadanie 9.
  113. /*Palindrom jest to wyraz, który czytany od tylu jest taki sam jak czytany od przodu, np. kajak. Napisz funkcję sprawdzającą czy
  114. w tablicy znaków zapisany jest palindrom. Funkcja ma zwracać wartość 1 jeśli w tablicy znaków jest palindrom lub 0 w
  115. przeciwnym wypadku.*/
  116.  
  117. int palindrom(char *tab, int n){
  118. int i, wynik, j;       
  119. for (i = 0, j = n-1 ; i < j ; i++, j--){
  120.         if (tab[i] != tab[j])
  121.         break;
  122. }
  123. if (i < j)
  124.         return wynik = 0;
  125. else
  126.         return wynik =1;       
  127. }
  128.  
  129. //Zadanie 10.
  130. /*Napisać funkcję max_znak zwracającą znak najczęściej występujący w pliku f oraz wartość wystąpienia tego znaku.*/
  131. char max_znak(FILE *userfile, int *n){
  132. char znak;
  133. int znakAsInt;
  134. int counter = 0;
  135. int i,temp, temp2;
  136. int tab[200] = {};
  137. while (!feof(userfile)){
  138.         znak = fgetc(userfile);
  139.         tolower(znak);
  140.         znakAsInt = (int)znak;
  141.         tab[znakAsInt]++;      
  142. }
  143. for (i=97 ; i<123 ; i++)
  144. {
  145.         temp = tab[i];
  146.         if (temp >= temp2){
  147.                 temp2 = temp;
  148.                 counter = i;   
  149.         }
  150. }
  151. znak = (char)counter;
  152. return znak;
  153. }
  154.  
  155. int main(){    
  156.        
  157. return 0;
  158. }
  159.  
  160.