Grugaloragran

Untitled

Oct 22nd, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. int poslFib(const char *name, int *res);
  3. int poslFib(const char *name, int *res)
  4. {
  5.     FILE*fp; double x, prev1=0,prev2=0; int opr=0;
  6.     if (!(fp = fopen(name, "r")))
  7.         return -1;
  8. fscanf(fp, "%lf", &prev1);
  9. if (prev1<=1 && prev1>=1)
  10.     {
  11.     opr=1;
  12.     fscanf(fp, "%lf", &prev2);
  13.     if (feof(fp))
  14.     {
  15.         fclose(fp);
  16.         *res = opr;
  17.         return 0;
  18.     }
  19.     else
  20.        {
  21.  
  22.  
  23.       if (prev2<=1 && prev2>=1)
  24.         {
  25.         while (fscanf(fp, "%lf", &x) == 1)
  26.         {
  27.  
  28.          if (x > prev1 + prev2 || x < prev1 + prev2) opr=0;
  29.            prev1 = prev2;
  30.            prev2 = x;
  31.  
  32.         }
  33.         }
  34.       else opr=0;
  35.  
  36.        }
  37.  
  38.  
  39. }
  40.     if (!feof(fp))
  41.     {
  42.         fclose(fp);
  43.         return -2;
  44.     }
  45.     fclose(fp);
  46.     *res = opr;
  47.     return 0;
  48.  
  49. }
  50. int main(void)
  51. {
  52.     const char *fname = "a.txt";
  53.     int answer; int ret;
  54.     ret = poslFib(fname, &answer);
  55.     if (ret < 0)
  56.     {
  57.         switch (ret)
  58.         {
  59.         case -1:
  60.             printf("Cannot open %s\n", fname);
  61.             break;
  62.         case -2:
  63.             printf("Cannot read %s\n", fname);
  64.             break;
  65.         default:
  66.             printf("Error %d in file %s\n", ret, fname);
  67.  
  68.         }
  69.         return 1;
  70.     }
  71.     printf("Fib = %d\n", answer);
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment