Advertisement
Guest User

Структура

a guest
Mar 13th, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement