Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2016, 21:54   #1
Ar2emiS
Пользователь
 
Регистрация: 18.10.2016
Сообщений: 27
По умолчанию Удаление или вставка символа из алфавита в последовательности

Язык Си. Дано 100 случайных последовательностей (положить в файл) длины 600 символов(из русских букв), в каждую последовательность вносится 10 изменений, то есть либо добавляется либо удаляется любой символ в любом месте. Измененные последовательности записать в новый файл.

Но программа работает некорректно. Выводятся посторонние символы.

Код:
#include <stdio.h>
#include <locale.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#define L 650            
int main(void)
{
 setlocale(LC_ALL, "");
 srand(time(NULL)); 
    FILE *fp3 = fopen("f3.txt", "r+"),*fp4 = fopen("f4.txt", "r+"); //f3-содержит последовательности, f4-с добавлением 10 вставок или удалений 
	int N=600,Q=100; // N-длина последовательности, Q - количество последовательностей
     char S[L],help;
char AL[33]={'а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'};
  
    int r0,r1,r2,r3; 
for (int n=1; n<=Q;n++)
	{
	fgets(S,L, fp3) ;    

int p=0; 

        for (int t=0; t<10; t++)   
		{
         r0 =rand()%2; //для вставки или удаление
			if (r0==0) //тогда вставка
			{
			r2=rand()%33;  //любой буквы
            r1=rand()%(N+p);//в любом месте
			p++;
             for (int j=N+p; j>r1; j--)
			 { 
			  S[j]=S[j-1];
			 }
            S[r1]=AL[r2];
		    }
		    
            if (r0==1) //тогда удаление
			{
            r3=rand()%(N+p); // в любом месте
			p--;
             for (int j=r3; j<N+p; j++)
			 { 
			  S[j]=S[j+1];
			 }
		    }
		    
           
        }
        
printf("%s\n",S);
fputs(S,fp4);
}
    fclose(fp4);
	fclose(fp3);
	return 0;
}

Последний раз редактировалось Ar2emiS; 26.10.2016 в 22:12.
Ar2emiS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка символа средствами VBA vfayans Microsoft Office Word 7 21.03.2012 20:15
Вставка символа Waqq Помощь студентам 4 03.09.2011 21:11
Вставка символа:) WizarD.89 Microsoft Office Excel 13 03.05.2011 21:47
Вставка символа в строку ArniLand Общие вопросы C/C++ 1 28.04.2010 18:11
Замена или вставка символа в char *. Lazio Общие вопросы C/C++ 11 30.09.2009 19:19