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

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

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);
}

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

13   голосов , оценка 3.692 из 5
Похожие ответы