Guest User

Untitled

a guest
Nov 28th, 2013
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define SIZE 10
  4.  
  5.  
  6. FILE *inputFile, *outputFile;
  7. float globalArray[SIZE];
  8. void someFunc(int flag);
  9.  
  10. int main(int argc, char * argv[])
  11. {
  12.     float localArray[SIZE];
  13.     int hand_input=0;
  14.     int i;
  15.     int step=0;
  16.     printf("Название университета и номер работы\n");
  17.     getchar();
  18.  
  19.     if (argc<2 || argc >3)
  20.     {
  21.         hand_input=1;
  22.     }
  23.    
  24.     outputFile = fopen(argv[1], "w");
  25.     if (outputFile==NULL)
  26.     {
  27.         perror("\nВозникла ошибка при открытии файла!");
  28.         printf("Дальнейшая работа программы невозможна\n");
  29.         return -1;
  30.     }
  31.    
  32.     inputFile = fopen(argv[2], "r");
  33.     if (inputFile==NULL)
  34.     {
  35.         hand_input=1;
  36.     }
  37.  
  38.     printf("\nНеинициализированные массивы:\n");
  39.     fprintf(outputFile, "\nНеинициализированные массивы:\n");
  40.  
  41.     printf("\n--------Глобальный массив----------\n");
  42.     fprintf(outputFile, "\n--------Глобальный массив----------\n");
  43.  
  44.     printf("%-10s|%-15s|%-15s", "Number", "Value", "Address");
  45.     fprintf(outputFile, "%-10s|%-15s|%-15s", "Number", "Value", "Address");
  46.  
  47.     for (i=0; i<SIZE; i++)
  48.     {
  49.         printf("\n%-10d|%f|%-15p", i, globalArray[i], &globalArray[i]);
  50.         fprintf(outputFile, "\n%-10d|%-15d|%-15p", i, globalArray[i], &globalArray[i]);
  51.  
  52.     }
  53.  
  54.     printf("\n\n--------Локальный массив----------\n");
  55.     fprintf(outputFile, "\n\n--------Локальный массив----------\n");
  56.  
  57.     printf("%-10s|%-15s|%-15s", "Number", "Value", "Address");
  58.     fprintf(outputFile, "%-10s|%-15s|%-15s", "Number", "Value", "Address");
  59.  
  60.     for (i=0; i<SIZE; i++)
  61.     {
  62.         printf("\n%-10d|%%f|%-15p", i, localArray[i], &localArray[i]);
  63.         fprintf(outputFile, "\n%-10d|%-15d|%-15p", i, localArray[i], &localArray[i]);
  64.  
  65.     }
  66.    
  67.     someFunc(0);
  68.    
  69.      char buf[20]; int flag;
  70.              i=0;
  71.              
  72.              if(hand_input==0){
  73.              printf("\n----------Ввод из файла--------\n");
  74.              while (!feof(inputFile))
  75.              {
  76.                  if (i>SIZE) break;
  77.                  if (fgets(buf, 20, inputFile)==NULL) break;
  78.                  flag=sscanf(buf, "%f", &globalArray[i]);
  79.                  int tmp=0;
  80.                  int* p=&tmp;
  81.                      if ((flag==0) || (globalArray[i]<-50) || (globalArray[i]>50) || (globalArray[2]-globalArray[1]==globalArray[3]-globalArray[2]))
  82.                  {
  83.                     step=globalArray[2]-globalArray[1];
  84.                     globalArray[i]=globalArray[0];        ///Ну или 1
  85.                  }
  86.                  if (globalArray[i]<-50 || globalArray[i]>50 || (globalArray[i]!=globalArray[i-1]+step))
  87.                  {
  88.                     printf("\nВ массив будет введен 0");
  89.                     globalArray[i]=localArray[i]=0;
  90.                     i++;
  91.                     continue;
  92.                  }
  93.                  localArray[i]=globalArray[i];
  94.                  printf("\n%f", globalArray[i]);
  95.                  i++;
  96.              } 
  97.         } else{
  98.                 for(i=0;i<SIZE;i++){
  99.                 printf("\n----------Ввод с клавиатуры--------\n");  
  100.                  flag=scanf("%f", &globalArray[i]);
  101.                  int tmp=0;
  102.                  int* p=&tmp;
  103.                  if ((i=0) || (i=1) || (i=2))
  104.                  {
  105.                     globalArray[i]=localArray[i];
  106.                  }
  107.                  if (i=2)
  108.                      {
  109.                      if (globalArray[1]-globalArray[0]==globalArray[2]-globalArray[1])
  110.                         {
  111.                         step=(globalArray[2]-globalArray[1]);
  112.                         }
  113.                      else
  114.                         {
  115.                         printf("Последовательность не существует");
  116.                         return -1;
  117.                         }
  118.                  if ((flag==0)  || (globalArray[i]<-50) || (globalArray[i]>50) || (globalArray[i]!=globalArray[i-1]+step))
  119.                  {
  120.                     printf("\nВ массив будет введен 0");
  121.                     globalArray[i]=localArray[i]=0;
  122.                     continue;
  123.                  }
  124.                  localArray[i]=globalArray[i];
  125.                  printf("\n%f", globalArray[i]);
  126.             }
  127.         }
  128.     someFunc(1);
  129.    
  130.     printf("\nИнициализированные массивы:\n");
  131.     fprintf(outputFile, "\nНеинициализированные массивы:\n");
  132.  
  133.     printf("\n--------Глобальный массив----------\n");
  134.     fprintf(outputFile, "\n--------Глобальный массив----------\n");
  135.  
  136.     printf("%-10s|%-15s|%-15s", "Number", "Value", "Address");
  137.     fprintf(outputFile, "%-10s|%-15s|%-15s", "Number", "Value", "Address");
  138.  
  139.     for (i=0; i<SIZE; i++)
  140.     {
  141.         printf("\n%-10d|%-15d|%-15p", i, globalArray[i], &globalArray[i]);
  142.         fprintf(outputFile, "\n%-10d|%f|%-15p", i, globalArray[i], &globalArray[i]);
  143.  
  144.     }
  145.  
  146.     printf("\n\n--------Локальный массив----------\n");
  147.     fprintf(outputFile, "\n\n---------Локальный массив----------\n");
  148.  
  149.     printf("%-10s|%-15s|%-15s", "Number", "Value", "Address");
  150.     fprintf(outputFile, "%-10s|%-15s|%-15s", "Number", "Value", "Address");
  151.  
  152.     for (i=0; i<SIZE; i++)
  153.     {
  154.         printf("\n%-10d|%-15d|%-15p", i, localArray[i], &localArray[i]);
  155.         fprintf(outputFile, "\n%-10d|%f|%-15p", i, localArray[i], &localArray[i]);
  156.  
  157.     }
  158.    
  159.     someFunc(0);
  160.     fflush(outputFile);
  161.     fclose(inputFile);
  162.     fclose(outputFile);
  163.     printf("--------Конец программы------");
  164.     return 0;
  165. }
  166.  
  167. void someFunc(int flag)
  168. {
  169.     float localizedArray[SIZE];
  170.     int i;
  171.  
  172.     if (flag==0)
  173.     {
  174.  
  175.       printf("\n\n--------Локальный массив----------\n");
  176.       printf("%-10s|%-15s|%-15s", "Number", "Value", "Address");
  177.       fprintf(outputFile, "\n\n--------Локальный массив----------\n");
  178.       fprintf(outputFile, "%-10s|%-15s|%-15s", "Number", "Value", "Address");
  179.  
  180.  
  181.       for (i=0; i<SIZE; i++)
  182.       {
  183.         printf("\n%-10d|%-15d|%-15p", i, localizedArray[i], &localizedArray[i]);
  184.         fprintf(outputFile, "\n%-10d|%f|%-15p", i, localizedArray[i], &localizedArray[i]);
  185.    
  186.       }
  187.       printf("\n");
  188.       fprintf(outputFile, "\n");
  189.     }
  190.     else
  191.     {
  192.       for (i=0; i<SIZE; i++)
  193.       {
  194.         localizedArray[i] = globalArray[i];
  195.       }
  196.     }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment