@sdenish

Нужно сделать циклический сдвиг вправо на 8 позиций. Считать из файла и записать в файл. Что не так?

int main() {
	FILE* bb, * aa;
	int n, i, j;
	char str[100], c;
	fopen_s(&bb, "text1.txt", "w"); // Открываем файлы для чтения и для записи
	fopen_s(&aa, "text.txt", "r");
	printf("Vvedite kolichestvo simvolov\n");
	scanf_s("%d", &n);	
	c = fgetc(aa);
	i = 0;
	while (c != EOF) { // Заполняем массив символами
		str[i] = c;
		i++;
		c = fgetc(aa);
	}
	char t = str[0],x;
	for (int i = 0; i < 8; i++) {
		str[0] = str[n - 1];
		for (int j = 0; j < str[n]; j++) {
			x = str[j];
			str[j] = t;
			t = x;
		}
		fputc(str[i], bb);
	}
	fclose(bb); // Закрываем оба файла.
	fclose(aa);
}
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
@res2001
Developer, ex-admin
Алгоритм циклического сдвига описан в старинной книге Джона Бентли "Жемчужины программирования".
https://codelib.ru/task/cycle_shift/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы