Код работает не так, как ожидается (найти и исправить ошибки) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. char deletika(char a[80], long ot, long sk)
  5. {
  6. int i, j, k = 0;
  7. i = j = 0;
  8. --ot;
  9. sk = sk + ot;
  10. do
  11. {
  12. if ((i < ot) || (i > sk))
  13. {
  14. a[j] = a[i];
  15. j++;
  16. }
  17. i++;
  18. } while (a[i] = '\0');
  19. for (k = j; k <= i; k++)
  20. {
  21. a[k] = *"";
  22. };
  23. return (*a);
  24. }
  25. char zamenil(char a[80], long ot)
  26. {
  27. int k = 0, k1 = 0;
  28. char c[80], d[80];
  29. char b[] = "123456789012345";
  30. strcpy(c, a);
  31. strcpy(d, a);
  32. strcpy(c + ot, b);
  33. k = strlen(c);
  34. k1 = strlen(a);
  35. for (int n = k1; n >= k; n--)
  36. ;
  37. {
  38. c[n] = d[n];
  39. }
  40. for (n = 1; n <= k1; n++)
  41. {
  42. a[n] = c[n];
  43. }
  44. return (*a);
  45. }
  46. char qS(char a[80], int N)
  47. {
  48. int i = 0, j = N;
  49. char temp, p;
  50. p = a[N];
  51. do
  52. {
  53. while (a[i] > p)
  54. i++;
  55. while (a[j] < p)
  56. j--;
  57. if (i <= j)
  58. {
  59. temp = a[i];
  60. a[i] = a[j];
  61. a[j] = temp;
  62. i++;
  63. j--;
  64. }
  65. } while (i <= j);
  66. if (j > 0)
  67. qS(a, j);
  68. if (N > i)
  69. qS(a + i, N - i);
  70. return (*a);
  71. }
  72. main()
  73. {
  74. int j = 0;
  75. clrscr();
  76. char vvod[80];
  77. FILE *fin, *fout;
  78. fin = fopen("input.txt", "r");
  79. fout = fopen("output.txt", "w");
  80. printf("vvedite stroku\n");
  81. fgets(vvod, 80, fin);
  82. printf(vvod);
  83. printf("-sobral\n");
  84. deletika(vvod, 0, 15);
  85. printf(vvod);
  86. printf("-udalil\n");
  87. while (vvod[j] != '\0')
  88. {
  89. j++;
  90. };
  91. printf(vvod);
  92. printf("-propustil\n");
  93. zamenil(vvod, 15);
  94. printf(vvod);
  95. printf("-zamenil\n");
  96. qS(vvod, j - 1);
  97. printf(vvod);
  98. printf("-sortiroval\n");
  99. fprintf(fout, vvod);
  100. printf("vivod v file\n");
  101. printf("and end");
  102. getch();
  103. fclose(fout);
  104. return (0);
  105. }
и ничего, печатает только -propustil zamenil и проч ничего не помогает

Решение задачи: «Код работает не так, как ожидается (найти и исправить ошибки)»

textual
Листинг программы
  1. //Laba 3
  2. //Ohstap4uk m3o-105b
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <string.h>
  6. char deletika (char a[80], long ot, long sk)
  7. {
  8.     int i,j,k=0;
  9.     i=j=0;
  10.     --ot;
  11.     sk=sk+ot;
  12.     do
  13.     {
  14.         if((i<ot)||(i>sk))
  15.        
  16.         {
  17.             a[j]=a[i];
  18.             j++;
  19.         }
  20.  
  21.         i++;
  22.     }  
  23.     while(a[i]!='\0');
  24.     for(k=j;k<=i;k++)
  25.     {
  26.         a[k]=*"";
  27.     };
  28.     return(*a);
  29. }
  30. char zamenil (char a[80], long ot)
  31. {
  32.     int k=0, k1=0,n;
  33.     char c[80], d[80];
  34.     char b[]="123456789012345";
  35.     strcpy(c,a);
  36.     strcpy(d,a);
  37.     strcpy(c+ot,b);
  38.     k=strlen(c);
  39.     k1=strlen(a);
  40.     for (n=k1; n>=k; n--)
  41.     {
  42.         c[n]=d[n];
  43.     }
  44.     for (n=1; n<=k1; n++)
  45.     {
  46.         a[n]=c[n];
  47.     }
  48.     return(*a);
  49. }
  50. char qS (char a[80], int N)
  51. {
  52.     int i=0, j=N;
  53.     char temp,p;
  54.     p=a[N];
  55.     do
  56.     {
  57.         while (a[i]>p) i++;
  58.         while (a[j]<p) j--;
  59.         if (i<=j)
  60.         {
  61.             temp=a[i]; a[i]=a[j]; a[j]=temp;
  62.             i++; j--;
  63.         }
  64.     }
  65.     while (i<=j);
  66.     if(j>0) qS (a,j);
  67.     if(N>i) qS (a+i,N-i);
  68.     return(*a);
  69. }
  70. main()
  71. {
  72.     int j=0;
  73.     char vvod[80];
  74.     FILE *fin, *fout;
  75.     fin=fopen("input.txt","r");
  76.     fout=fopen("output.txt","w");
  77.     printf("vvedite stroku\n");
  78.     fgets(vvod,80,fin);
  79.     printf(vvod);
  80.     printf("-sobral\n");
  81.     deletika(vvod,0,15);
  82.     printf(vvod);
  83.     printf("-udalil\n");
  84.     while(vvod[j]!='\0')
  85.         {j++;};
  86.     printf(vvod);
  87.     printf("-propustil\n");
  88.     zamenil(vvod,15);
  89.     printf(vvod);
  90.     printf("-zamenil\n");
  91.     qS(vvod,j-1);
  92.     printf(vvod);
  93.     printf("-sortiroval\n");
  94.     fprintf(fout,vvod);
  95.     printf("vivod v file\n");
  96.     printf("and fin");
  97.     getch();
  98.     fclose(fout);
  99.     return(0);
  100. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы