Код работает не так, как ожидается (найти и исправить ошибки) - 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);
}