Задача: Сортировка вставкой
Исходник: работа fgets, язык: C++ [code #633, hits: 14644]
аноним: Ванюшка [добавлен: 23.01.2012]
  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include <tchar.h>
  7. #include <iostream.h>
  8. #include <stdio.h>
  9. #include <fstream.h>
  10.  
  11. #include <stdlib.h>
  12. //---------------------------------------------------------------------------
  13.  
  14. #pragma argsused
  15. int _tmain(int argc, _TCHAR* argv[])
  16. {
  17. //открываем файл
  18. FILE *input = fopen("D:\\input.txt", "r");
  19. //подготавливаем переменную для записи в нее значения из файла
  20. char str[1024];
  21. fgets(str, 1023, input) ;
  22. int x;
  23. char plus;
  24. //Приводим отпарсенные данные к целому типу
  25. int one = static_cast<int>(str[0]-'0');
  26. int two = static_cast<int>(str[2]-'0');
  27. //Узнаем знаки
  28. plus=str[1];
  29. int result;
  30. if (plus == '+') {
  31. result = one+two;
  32. }
  33. if (plus == '-') {
  34. result = one-two;
  35. }
  36.  
  37. int i;
  38. int j=0;
  39. int p;
  40. int p2;
  41. for (i = 0; i < 100; i++) {
  42. if (!str[i]) {
  43. break;
  44. }
  45. else
  46. {
  47. j++;
  48. }
  49. }
  50.  
  51. int *s3 = new int [j];
  52.  
  53. for (p = 0; p < j; p++) {
  54. s3[p] = str[p];
  55. }
  56. for (p2 = 0; p2 < j; p2++) {
  57. if (str[p2] != '+' & str[p2] != '-' & str[p2] != '*'& str[p2] != '/') {
  58. s3[p2] = static_cast<int>(str[p2]-'0');
  59. }
  60. else {
  61. s3[p2] = str[p2];
  62.  
  63.  
  64. }
  65. }
  66.  
  67. int c;
  68. int sum1;
  69. int itog=0;
  70.  
  71. int end = 0;
  72. int k;
  73. int sam = 0;
  74. int raz = 0;
  75. int temp2;
  76. int sum=0;
  77. int l;
  78. for (c = 0; c < j-1; c++) {
  79. if (c%2 != 0) {
  80. end++;
  81. }
  82. }
  83.  
  84. char temp;
  85. for (c = 0; c < j; c++) {
  86. if (c%2 != 0) {
  87. if (s3[c] == '*') {
  88. if (s3[c+2] != '*' && s3[c+2] != '/') {
  89. if (raz == 0) {
  90. itog = s3[c-1]*s3[c+1]+sum;
  91. s3[c+1] = itog;
  92. sum=0;
  93. }
  94. if (raz != 0) {
  95. itog = raz - s3[c-1]*s3[c+1]+sum;
  96. s3[c+1] = itog;
  97. sum=0;
  98. raz = 0;
  99. }
  100.  
  101. }
  102.  
  103. else {
  104. itog = s3[c-1]*s3[c+1];
  105. s3[c+1] = itog;
  106.  
  107. }
  108.  
  109. }
  110. if (s3[c] == '/') {
  111. if (s3[c+2] != '*' && s3[c+2] != '/') {
  112. if (raz==0) {
  113. itog = s3[c-1]/s3[c+1]+sum;
  114. s3[c+1] = itog;
  115. }
  116. if (raz!= 0 ) {
  117. itog = raz-s3[c-1]/s3[c+1]+sum;
  118. s3[c+1] = itog;
  119. }
  120.  
  121. }
  122. else {
  123. itog = s3[c-1]/s3[c+1];
  124. s3[c+1] = itog;
  125. }
  126.  
  127.  
  128.  
  129.  
  130. }
  131. if (s3[c] == '+') {
  132.  
  133. sum=0;
  134. if (s3[c+2] == '*' || s3[c+2] == '/' ) {
  135.  
  136. sum = sum+s3[c-1];
  137. }
  138.  
  139. if (s3[c+2] != '*' && s3[c+2] != '/') {
  140. itog = s3[c-1]+ s3[c+1] +sum;
  141.  
  142. s3[c+1] = itog;
  143. }
  144.  
  145.  
  146.  
  147.  
  148. }
  149.  
  150. if (s3[c] == '-') {
  151.  
  152. if (s3[c+2] == '*' || s3[c+2] == '/' ) {
  153.  
  154. raz = raz+s3[c-1];
  155. }
  156.  
  157. if (s3[c+2] != '*' && s3[c+2] != '/') {
  158. itog = s3[c-1]- s3[c+1] +sum;
  159.  
  160. s3[c+1] = itog;
  161. }
  162.  
  163. }
  164.  
  165. }
  166.  
  167.  
  168. }
  169.  
  170. cout << itog;
  171.  
  172. cin>> x;
  173.  
  174. }
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182. //---------------------------------------------------------------------------
работа

+добавить реализацию