Advertisement
Guest User

Untitled

a guest
Jun 26th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. /* В текстовом файле дана последовательность чисел. Написать подпрограмму, которая находит среднее арифметическое элементов однонаправленного списка. Используя эту подпрограмму, вычислить среднее арифметическое заданной последовательности. */
  2.  
  3. #define _CRT_SECURE_NO_WARNINGS
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. typedef struct list
  8. {
  9.     double data;
  10.     struct list * next;
  11. };
  12.  
  13. void scan(FILE * F, struct list * L)
  14. {
  15.  
  16.     struct list * k = L;
  17.     double data;
  18.     while (fscanf(F, "%lf", &data) != EOF && (k->next = (struct list*)malloc(sizeof(struct list))))
  19.     {
  20.         k->next->data = data;
  21.         k = k->next;
  22.     }
  23.     k->next = NULL;
  24. }
  25.  
  26. void print(struct list * L)
  27.  
  28. {
  29.     struct list * k = L;
  30.     while (k->next)
  31.     {
  32.         k = k->next;
  33.         printf("%lf\n", k->data);
  34.     }
  35. }
  36.  
  37. double func(struct list * L)
  38.  
  39. {
  40.     struct list *s = L;
  41.     double res = 0;
  42.     int am = 0;
  43.     while (s->next)
  44.     {
  45.         s = s->next;
  46.         res += s->data;
  47.         am++;
  48.     }
  49.     return res /= am;
  50. }
  51. int main()
  52. {
  53.     FILE * in = fopen("input.txt", "r");
  54.     struct list *L = (struct list*)malloc(sizeof(struct list));
  55.     scan(in, L);
  56.     print(L);
  57.     system("pause");
  58.     system("cls");
  59.     printf("%lf\n", func(L));
  60.     system("pause");
  61.     fclose(in);
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement