Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.21 KB | None | 0 0
  1. ////main.c
  2.  
  3. #include <stdio.h>
  4.  
  5. #include "func.h"
  6.  
  7. int main(void)
  8. {
  9.     int rezult;
  10.     char fname1[256];
  11.     char fname2[256];
  12.  
  13.     printf("Please, enter first file name: ");
  14.     scanf("%255s", fname1);
  15.  
  16.     printf("Please, enter second file name: ");
  17.     scanf("%255s", fname2);
  18.  
  19.     rezult = func(fname1, fname2);
  20.  
  21.     if (rezult == 1) {
  22.         printf("Yes\n");
  23.     }
  24.     else if (rezult == 0) {
  25.         printf("No\n");
  26.     }
  27.     else {
  28.         printf("Error\n");
  29.     }
  30.  
  31.     switch (rezult)
  32.     {
  33.     case -6:
  34.         printf("Second sequence is bigger, then first!\n");
  35.  
  36.         break;
  37.     case -5:
  38.         printf("First sequence is bigger, then second!\n");
  39.  
  40.         break;
  41.     case -4:
  42.         printf("There is not enough elements!\n");
  43.  
  44.         break;
  45.     case -3:
  46.         printf("Sequence is empty!\n");
  47.  
  48.         break;
  49.     case -2:
  50.         printf("Error in reading from file!\n");
  51.  
  52.         break;
  53.     case -1:
  54.         printf("Can't open file!\n");
  55.  
  56.         break;
  57.     case 0:
  58.         printf("No, it is not so.\n");
  59.  
  60.         break;
  61.     case 1:
  62.         printf("Yes, it is so.\n");
  63.  
  64.         break;
  65.     }
  66.  
  67.     return 0;
  68. }
  69.  
  70.  
  71. //// func.c
  72.  
  73. #include <stdio.h>
  74. #include <math.h>
  75.  
  76. #include "func.h"
  77.  
  78. int func(char* fname1, char* fname2)
  79. {
  80.     int flag;
  81.     double tmp1_1;
  82.     double tmp1_2;
  83.     double tmp1_3;
  84.     double tmp2_1;
  85.     double tmp2_2;
  86.     double tmp2_3;
  87.     FILE* fin1;
  88.     FILE* fin2;
  89.  
  90.     fin1 = fopen(fname1, "r");
  91.  
  92.     if (!fin1)
  93.         return -1;
  94.  
  95.     fin2 = fopen(fname2, "r");
  96.  
  97.     if (!fin2)
  98.     {
  99.         fclose(fin1);
  100.  
  101.         return -1;
  102.     }
  103.  
  104.     if (fscanf(fin1, "%lf", &tmp1_1) != 1)
  105.     {
  106.         if (!feof(fin1))
  107.         {
  108.             fclose(fin1);
  109.             fclose(fin2);
  110.  
  111.             return -2;
  112.         }
  113.         else
  114.         {
  115.             fclose(fin1);
  116.             fclose(fin2);
  117.  
  118.             return -3;
  119.         }
  120.     }
  121.  
  122.     if (fscanf(fin2, "%lf", &tmp2_1) != 1)
  123.     {
  124.         if (!feof(fin2))
  125.         {
  126.             fclose(fin1);
  127.             fclose(fin2);
  128.  
  129.             return -2;
  130.         }
  131.         else
  132.         {
  133.             fclose(fin1);
  134.             fclose(fin2);
  135.  
  136.             return -3;
  137.         }
  138.     }
  139.  
  140.     if (fscanf(fin1, "%lf", &tmp1_2) != 1)
  141.     {
  142.         if (!feof(fin1))
  143.         {
  144.             fclose(fin1);
  145.             fclose(fin2);
  146.  
  147.             return -2;
  148.         }
  149.         else
  150.         {
  151.             fclose(fin1);
  152.             fclose(fin2);
  153.  
  154.             return -4;
  155.         }
  156.     }
  157.  
  158.     if (fscanf(fin2, "%lf", &tmp2_2) != 1)
  159.     {
  160.         if (!feof(fin2))
  161.         {
  162.             fclose(fin1);
  163.             fclose(fin2);
  164.  
  165.             return -2;
  166.         }
  167.         else
  168.         {
  169.             fclose(fin1);
  170.             fclose(fin2);
  171.  
  172.             return -4;
  173.         }
  174.     }
  175.  
  176.     flag = 0;
  177.  
  178.     while (1)
  179.     {
  180.         if (fscanf(fin1, "%lf", &tmp1_3) != 1)
  181.         {
  182.             if (!feof(fin1))
  183.             {
  184.                 fclose(fin1);
  185.                 fclose(fin2);
  186.  
  187.                 return -2;
  188.             }
  189.             else if (fscanf(fin2, "%lf", &tmp2_3) != 1)
  190.             {
  191.                 if (!feof(fin2))
  192.                 {
  193.                     fclose(fin1);
  194.                     fclose(fin2);
  195.  
  196.                     return -2;
  197.                 }
  198.                 else
  199.                 {
  200.                     fclose(fin1);
  201.                     fclose(fin2);
  202.  
  203.                     if (flag == 0)
  204.                         return -4;
  205.                     else
  206.                         return 1;
  207.                 }
  208.             }
  209.             else
  210.             {
  211.                 fclose(fin1);
  212.                 fclose(fin2);
  213.  
  214.                 return -6;
  215.             }
  216.  
  217.         }
  218.  
  219.         if (fscanf(fin2, "%lf", &tmp2_3) != 1)
  220.         {
  221.             if (!feof(fin2))
  222.             {
  223.                 fclose(fin1);
  224.                 fclose(fin2);
  225.  
  226.                 return -2;
  227.             }
  228.             else
  229.             {
  230.                 fclose(fin1);
  231.                 fclose(fin2);
  232.  
  233.                 return -5;
  234.             }
  235.         }
  236.  
  237.         if (fabs(tmp2_2 - 0.5 * (tmp1_1 + tmp1_3)) > 1e-100)
  238.         {
  239.             fclose(fin1);
  240.             fclose(fin2);
  241.  
  242.             return 0;
  243.         }
  244.         else
  245.             flag = 1;
  246.  
  247.         tmp1_1 = tmp1_2;
  248.         tmp1_2 = tmp1_3;
  249.  
  250.         tmp2_1 = tmp2_2;
  251.         tmp2_2 = tmp2_3;
  252.     }
  253. }
  254.  
  255.  
  256.  
  257. ////func.h
  258.  
  259. int func(char* fname1, char* fname2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement