Код работает не так, как ожидается (найти и исправить ошибки) - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- char deletika(char a[80], long ot, long sk)
- {
- int i, j, k = 0;
- i = j = 0;
- --ot;
- sk = sk + ot;
- do
- {
- if ((i < ot) || (i > sk))
- {
- a[j] = a[i];
- j++;
- }
- i++;
- } while (a[i] = '\0');
- for (k = j; k <= i; k++)
- {
- a[k] = *"";
- };
- return (*a);
- }
- char zamenil(char a[80], long ot)
- {
- int k = 0, k1 = 0;
- char c[80], d[80];
- char b[] = "123456789012345";
- strcpy(c, a);
- strcpy(d, a);
- strcpy(c + ot, b);
- k = strlen(c);
- k1 = strlen(a);
- for (int n = k1; n >= k; n--)
- ;
- {
- c[n] = d[n];
- }
- for (n = 1; n <= k1; n++)
- {
- a[n] = c[n];
- }
- return (*a);
- }
- char qS(char a[80], int N)
- {
- int i = 0, j = N;
- char temp, p;
- p = a[N];
- do
- {
- while (a[i] > p)
- i++;
- while (a[j] < p)
- j--;
- if (i <= j)
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- i++;
- j--;
- }
- } while (i <= j);
- if (j > 0)
- qS(a, j);
- if (N > i)
- qS(a + i, N - i);
- return (*a);
- }
- main()
- {
- int j = 0;
- clrscr();
- char vvod[80];
- FILE *fin, *fout;
- fin = fopen("input.txt", "r");
- fout = fopen("output.txt", "w");
- printf("vvedite stroku\n");
- fgets(vvod, 80, fin);
- printf(vvod);
- printf("-sobral\n");
- deletika(vvod, 0, 15);
- printf(vvod);
- printf("-udalil\n");
- while (vvod[j] != '\0')
- {
- j++;
- };
- printf(vvod);
- printf("-propustil\n");
- zamenil(vvod, 15);
- printf(vvod);
- printf("-zamenil\n");
- qS(vvod, j - 1);
- printf(vvod);
- printf("-sortiroval\n");
- fprintf(fout, vvod);
- printf("vivod v file\n");
- printf("and end");
- getch();
- fclose(fout);
- return (0);
- }
Решение задачи: «Код работает не так, как ожидается (найти и исправить ошибки)»
textual
Листинг программы
- //Laba 3
- //Ohstap4uk m3o-105b
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- char deletika (char a[80], long ot, long sk)
- {
- int i,j,k=0;
- i=j=0;
- --ot;
- sk=sk+ot;
- do
- {
- if((i<ot)||(i>sk))
- {
- a[j]=a[i];
- j++;
- }
- i++;
- }
- while(a[i]!='\0');
- for(k=j;k<=i;k++)
- {
- a[k]=*"";
- };
- return(*a);
- }
- char zamenil (char a[80], long ot)
- {
- int k=0, k1=0,n;
- char c[80], d[80];
- char b[]="123456789012345";
- strcpy(c,a);
- strcpy(d,a);
- strcpy(c+ot,b);
- k=strlen(c);
- k1=strlen(a);
- for (n=k1; n>=k; n--)
- {
- c[n]=d[n];
- }
- for (n=1; n<=k1; n++)
- {
- a[n]=c[n];
- }
- return(*a);
- }
- char qS (char a[80], int N)
- {
- int i=0, j=N;
- char temp,p;
- p=a[N];
- do
- {
- while (a[i]>p) i++;
- while (a[j]<p) j--;
- if (i<=j)
- {
- temp=a[i]; a[i]=a[j]; a[j]=temp;
- i++; j--;
- }
- }
- while (i<=j);
- if(j>0) qS (a,j);
- if(N>i) qS (a+i,N-i);
- return(*a);
- }
- main()
- {
- int j=0;
- char vvod[80];
- FILE *fin, *fout;
- fin=fopen("input.txt","r");
- fout=fopen("output.txt","w");
- printf("vvedite stroku\n");
- fgets(vvod,80,fin);
- printf(vvod);
- printf("-sobral\n");
- deletika(vvod,0,15);
- printf(vvod);
- printf("-udalil\n");
- while(vvod[j]!='\0')
- {j++;};
- printf(vvod);
- printf("-propustil\n");
- zamenil(vvod,15);
- printf(vvod);
- printf("-zamenil\n");
- qS(vvod,j-1);
- printf(vvod);
- printf("-sortiroval\n");
- fprintf(fout,vvod);
- printf("vivod v file\n");
- printf("and fin");
- getch();
- fclose(fout);
- return(0);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д