Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. struct word
  6. {
  7. char *name;
  8. int number;
  9. };
  10.  
  11. void print10 (struct word *array, int wordnum);
  12.  
  13. int main ()
  14. {
  15. struct word *array;
  16. char *tmp;
  17. int ch = 1, i = 0, j = 0, wordnum = 0;
  18.  
  19. array = malloc (sizeof (struct word) * 320);
  20.  
  21. printf ("Input text:\n");
  22.  
  23. while (ch != EOF)
  24. {
  25. tmp = malloc (32);
  26. ch = getchar ();
  27.  
  28. while ((ch <= 'Z' && ch >= 'A') || (ch <= 'z' && ch >= 'a') || (ch <= '9' && ch >= '0'))
  29. {
  30. tmp [i] = ch;
  31. i++;
  32. ch = getchar ();
  33. }
  34.  
  35. if (i != 0)
  36. {
  37. tmp [i] = 0;
  38.  
  39. while (j < wordnum)
  40. {
  41. if (strcmp (array [j].name, tmp) == 0)
  42. {
  43. array [j].number++;
  44. break;
  45. }
  46.  
  47. j++;
  48. }
  49.  
  50. if (j == wordnum)
  51. {
  52. array [wordnum].name = tmp;
  53. array [wordnum].number = 1;
  54. wordnum++;
  55. }
  56.  
  57. i = 0;
  58. j = 0;
  59. }
  60. }
  61.  
  62.  
  63. /* printf ("wordnum = %d\n", wordnum);*/
  64.  
  65. printf ("\n");
  66. print10 (array, wordnum);
  67.  
  68. for (i = 0; i < wordnum; i++)
  69. free (array [i].name);
  70.  
  71. free (array);
  72.  
  73. return 0;
  74. }
  75.  
  76. void print10 (struct word *array, int wordnum)
  77. {
  78. int i, j, max = 0, maxnum;
  79.  
  80. for (i = 0; i < 10; i++)
  81. {
  82. for (j = 0; j < wordnum; j++)
  83. {
  84. if (array [j].number > max)
  85. {
  86. max = array [j].number;
  87. maxnum = j;
  88. }
  89.  
  90. j++;
  91. }
  92.  
  93. printf ("%s %d\n", array [maxnum].name, max);
  94. array [maxnum].number = 0;
  95. max = 0;
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement