Advertisement
elektryk798

LabC_08-12-2016

Dec 8th, 2016
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void czytaj_n (int *n);
  5. void czytaj_tab (int *tab,int n);
  6. void drukuj_tab(int *tab,int n);
  7. int maksimum (int *tab,int n);
  8. int minimum (int *tab,int n);
  9. double srednia (int *tab,int n);
  10. int *czytaj_do_0 (int *n);
  11. int dlugosc(int *tab);
  12.  
  13. int main()
  14. {
  15.     int *t=NULL,n=0,m;
  16.     double sr;
  17.     char z;
  18.     for(;;)
  19.     {
  20.         printf("Wybierz dzialanie\n");
  21.         fflush(stdin);
  22.         scanf("%c",&z);
  23.         switch (z)
  24.         {
  25.             case 'c':
  26.                 printf("Podaj ilosc elementow tablicy:\n");
  27.                 czytaj_n(&n);
  28.                 t=(int*)malloc(n*sizeof(int));
  29.                 printf("Podaj elementy tablicy:\n");
  30.                 czytaj_tab(t,n);
  31.                 break;
  32.             case 'd':
  33.                 drukuj_tab(t,n);
  34.                 break;
  35.             case 'm':
  36.                 if (!dlugosc(t))
  37.                     break;
  38.                 printf("Maksimum z tablicy:\n%d\n",maksimum(t,n));
  39.                 break;
  40.             case 'n':
  41.                 printf("Minimum z tablicy:\n%d\n",minimum(t,n));
  42.                 break;
  43.             case 's':
  44.                 printf("Srednia z tablicy:\n%lf\n",srednia(t,n));
  45.                 break;
  46.             case 'x':
  47.                 t=czytaj_do_0(&n);
  48.                 break;
  49.             case 'q':
  50.                 printf("Koniec programu\n");
  51.                     free (t);
  52.                     return 0;
  53.             default:
  54.                 break;
  55.         }
  56.     }
  57. }
  58.  
  59. void czytaj_n (int *n)
  60. {
  61.     do
  62.     {
  63.     fflush(stdin);
  64.     scanf("%d",n);
  65.     }while(*n<1);
  66. }
  67.  
  68. void czytaj_tab (int *tab,int n)
  69. {
  70.     int i=0,tmp;
  71.     for(;i<n;i++)
  72.     {
  73.         fflush(stdin);
  74.         scanf("%d",tab+i);
  75.     }
  76. }
  77. void drukuj_tab (int *tab,int n)
  78. {
  79.     int i=0;
  80.     printf("Tablica:\n");
  81.     for(;i<n;i++)
  82.     {
  83.         printf("%d, ",*(tab+i));
  84.     }
  85.     putchar('\n');
  86. }
  87. int maksimum (int *tab,int n)
  88. {
  89.     int maks=*tab,i=1;
  90.     for(;i<n;i++)
  91.     {
  92.         if(*(tab+i)>maks)
  93.             maks=*(tab+i);
  94.     }
  95.     return maks;
  96. }
  97. int minimum (int *tab,int n)
  98. {
  99.     int min=*tab,i=1;
  100.     for(;i<n;i++)
  101.     {
  102.         if(*(tab+i)<min)
  103.             min=*(tab+i);
  104.     }
  105.     return min;
  106. }
  107. double srednia (int *tab,int n)
  108. {
  109.     int suma=0,i=0;
  110.     double sr;
  111.     for(;i<n;i++)
  112.     {
  113.         suma+=*(tab+i);
  114.     }
  115.     sr=(double)suma/n;
  116.     return sr;
  117. }
  118. int *czytaj_do_0 (int *n)
  119. {
  120.     int *tab=NULL,i=0,tmp;
  121.     do{
  122.         scanf("%d",&tmp);
  123.         if(tmp==0)
  124.             break;
  125.         tab=(int*)realloc(tab,(i+1)*sizeof(int));
  126.         *(tab+i)=tmp;
  127.         i++;
  128.     }
  129.     while(1);
  130.     *n=i;
  131.     return tab;
  132. }
  133. int dlugosc (int *tab)
  134. {
  135.     int j=0;
  136.     while (*(tab+j)>='0' && *(tab+j)<='9')
  137.         j++;
  138.     return j;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement