Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.40 KB | None | 0 0
  1. // 1. Napište program v jazyce C, který načte do pole reálná čísla.
  2. // Čísla zadává uživatel jako posloupnost hodnot s koncovou značkou –99.
  3. // Hodnoty z pole vypište. Vypočítejte a vypište na obrazovku průměrnou hodnotu čísel v poli.
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7.  
  8. float getInput() {
  9.   float input;
  10.  
  11.   printf("Prosim vlozte hodnoty (koncova znacka: -99): ");
  12.   scanf("%f", &input);
  13.  
  14.   return input;
  15. }
  16.  
  17. float * newAllocatedSpace(float *cisla, int pocet) {
  18.   float *pomocne_cisla = (float *) realloc (cisla, pocet * sizeof(float));
  19.  
  20.   if (!pomocne_cisla) {
  21.     free(cisla);
  22.     puts("Chyba pri (re)allokaci pameti");
  23.     exit(1);
  24.   }
  25.  
  26.   return pomocne_cisla;
  27. }
  28.  
  29. float * loadNextNumber(float *cisla, int pocet) {
  30.   float input = getInput();
  31.  
  32.   if (input == -99)
  33.     return cisla;
  34.    
  35.   pocet++;
  36.  
  37.   cisla = newAllocatedSpace(cisla, pocet);
  38.   cisla[pocet - 1] = input;
  39.  
  40.   cisla = loadNextNumber(cisla, pocet);
  41.   return cisla;
  42. }
  43.  
  44. int main() {
  45.   int pocet = 0;
  46.   float *cisla = NULL;
  47.  
  48.   cisla = loadNextNumber(cisla, pocet);
  49.  
  50.   printf("Vlozena cisla: ");
  51.  
  52.   for (int i = 0; i < pocet; i++)
  53.     printf("%f\n", cisla[i]);
  54.  
  55.   float suma = 0;
  56.  
  57.   for (int i = 0; i < pocet; i++) {
  58.     suma += cisla[i];
  59.   }
  60.  
  61.   printf("\nPrumer: %f\n", suma / pocet);
  62.  
  63.   free(cisla);
  64.  
  65.   system('pause');
  66.   return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement