Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #define N 100
- // создаем свой тип данных для односвязного списка
- typedef struct List
- {
- int val, row;
- struct List* next;
- } List;
- // указатели на первый и последний элемент списка
- List *str[N], *Last;
- // функция добавления нового элемента в конец списка
- void push(int i,int info, int r)
- {
- struct List* el;
- // динамически выделяем память под очередной элемент списка
- el = (struct List*)malloc(sizeof(struct List));
- if (el == NULL)
- {
- printf("Не удалось выделить память под элемент списка.\n");
- return;
- }
- el->row = r;
- el->val = info;
- el->next = NULL;
- if (str[i] == NULL)
- str[i] = Last = el;
- else
- {
- Last->next = el;
- Last = Last->next;
- }
- }
- int d;
- void main (int argc, char *argv[])
- {
- FILE *FA;
- char string[N];
- List* el;
- 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;
- setlocale(LC_ALL,"Russian");
- FA=fopen("FA.txt", "r");
- if(FA == NULL)
- {
- printf("Error :с\n");
- return ;
- }
- while (tmp!=EOF)
- {
- tmp=fgetc(FA);
- string[m]=tmp;
- m++;
- }
- string[m]='/';
- k=m;
- m=0;
- while (string[m+1] == '/') // count3 отвечает за обнуление i,j
- {
- while (string[m] != '/') //count отвечает за то в какую из переменных мы записываем, count2 отвечает за обнуление inf
- {
- if (string[m]==' ')
- {
- count++; count2=1;
- break;
- }
- l = string[m] -'0';
- if (count%3==1)
- {
- if (count3==0)
- {
- i=0;
- j=0;
- }
- i=i*10 + l;
- if (i>p)
- p=i;
- count3++;
- }
- if (count%3==2)
- {
- j=j*10 + l;
- if (j>n)
- n=j;
- }
- if (count%3==0)
- {
- if (count2==1)
- {
- inf=0;
- count2++;
- }
- inf=inf*10 + l;
- count3=0;
- if (string[m+1]==' ')
- push (i,inf,j);
- }
- m++;
- }
- m++;
- }
- fclose (FA);
- //
- //while (inf!=69)
- //{
- ////scanf("%d", &i);
- ////scanf("%d",&j);
- ////scanf("%d",&inf);
- // push (i,inf,j);
- //}
- m=i;
- l=j;
- for (i=0;i<m+1;i++)
- for (el=str[i]; el!=NULL; el=el->next)
- {
- j=el->row;
- if (j>l)
- l=j;
- }
- for (j=0;j<l+1;j++)
- c[j]=0;
- for (i=0;i<m+1;i++)
- for (el=str[i]; el!=NULL; el=el->next)
- {
- j=el->row;
- c[j]++;
- }
- for (j=0;j<l+1;j++)
- if (c[j]>max)
- {
- max=c[j];
- jmax=j;
- }
- printf("\n");
- printf("%d столбец с самой длинной последовательностью ненулевых элементов\n", jmax);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement