daily pastebin goal
2%
SHARE
TWEET

Структура

a guest Mar 13th, 2018 45 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <locale.h>
  6. #define N 100
  7.  
  8. // создаем свой тип данных для односвязного списка
  9. typedef struct List
  10. {
  11.     int val, row;
  12.     struct List* next;
  13. } List;
  14.  
  15. // указатели на первый и последний элемент списка
  16. List *str[N], *Last;
  17.  
  18. // функция добавления нового элемента в конец списка
  19. void push(int i,int info, int r)
  20. {
  21.     struct List* el;
  22.  
  23.     // динамически выделяем память под очередной элемент списка
  24.     el = (struct List*)malloc(sizeof(struct List));
  25.     if (el == NULL)
  26.     {
  27.         printf("Не удалось выделить память под элемент списка.\n");
  28.         return;
  29.     }
  30.  
  31.     el->row = r;
  32.     el->val = info;
  33.     el->next = NULL;
  34.  
  35.     if (str[i] == NULL)
  36.         str[i] = Last = el;
  37.     else
  38.     {
  39.         Last->next = el;
  40.         Last = Last->next;
  41.     }
  42. }
  43.     int d;
  44. void main (int argc, char *argv[])
  45. {
  46.     FILE *FA;
  47.     char string[N];
  48.     List* el;
  49.     int c[N], max=-1,jmax, inf=-69, a[N][N], i=0,j=0, info,tmp=0,k, m=0,l=0, count=1, count2=1, count3=0, p=0,n=0;
  50.     setlocale(LC_ALL,"Russian");
  51.     FA=fopen("FA.txt", "r");
  52.     if(FA == NULL)
  53.     {
  54.     printf("Error :с\n");
  55.     return ;
  56.     }
  57.    
  58.     while (tmp!=EOF)
  59.     {
  60.         tmp=fgetc(FA);
  61.         string[m]=tmp;
  62.         m++;
  63.     }
  64.     string[m]='/';
  65.     k=m;
  66.     m=0;
  67.     while (string[m+1] == '/') // count3 отвечает за обнуление i,j
  68.     {
  69.         while (string[m] != '/') //count отвечает за то в какую из переменных мы записываем, count2 отвечает за обнуление inf
  70.         {
  71.             if (string[m]==' ')
  72.             {
  73.                 count++; count2=1;
  74.                 break;
  75.             }              
  76.             l = string[m] -'0';
  77.             if (count%3==1)
  78.             {
  79.                 if (count3==0)
  80.                 {
  81.                     i=0;
  82.                     j=0;
  83.                 }
  84.                 i=i*10 + l;
  85.                 if (i>p)
  86.                     p=i;
  87.                 count3++;
  88.             }              
  89.             if (count%3==2)
  90.             {
  91.                 j=j*10 + l;
  92.                 if (j>n)
  93.                     n=j;
  94.             }
  95.             if (count%3==0)
  96.             {
  97.                 if (count2==1)
  98.                 {
  99.                     inf=0;
  100.                     count2++;
  101.                 }
  102.                 inf=inf*10 + l;
  103.                 count3=0;
  104.                 if (string[m+1]==' ')
  105.                     push (i,inf,j);
  106.  
  107.  
  108.             }
  109.             m++;
  110.         }
  111.         m++;
  112.     }
  113.  
  114.     fclose (FA);
  115.     //
  116.     //while (inf!=69)
  117.     //{
  118.     ////scanf("%d", &i);
  119.     ////scanf("%d",&j);
  120.     ////scanf("%d",&inf);
  121.  
  122.     //  push (i,inf,j);
  123.     //}
  124.     m=i;
  125.     l=j;
  126.     for (i=0;i<m+1;i++)
  127.         for (el=str[i]; el!=NULL; el=el->next)
  128.         {
  129.             j=el->row;
  130.             if (j>l)
  131.                 l=j;
  132.         }
  133.    
  134.     for (j=0;j<l+1;j++)
  135.         c[j]=0;
  136.     for (i=0;i<m+1;i++)
  137.         for (el=str[i]; el!=NULL; el=el->next)
  138.         {
  139.             j=el->row;
  140.             c[j]++;
  141.         }
  142.     for (j=0;j<l+1;j++)
  143.         if (c[j]>max)
  144.         {
  145.             max=c[j];
  146.             jmax=j;
  147.         }
  148.     printf("\n");
  149.     printf("%d столбец с самой длинной последовательностью ненулевых элементов\n", jmax);
  150. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top