Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Если кол-во элементов четно - выбираем каждый четный (по порядку) элемент
- // Иначе каждый нечетный (по порядку) элемент
- // Удаляя при этом ненужные элементы
- #include "stdafx.h"
- #include <stdio.h>
- struct line {
- char elem;
- line *next;
- };
- void addSymbol(line *now, char elem) {
- now->next = new line;
- now->next->elem = elem;
- now->next->next = NULL;
- }
- void main() {
- line *start = NULL; // start - начало последовательности
- line *now = NULL; // Текущий элемент
- int count = 0; // Кол-во элементов
- char elem; // Элемент
- FILE *file; // Указатель на файл
- // Если файл пустой, то говорим, что ошибка
- if ((file = fopen("data.txt", "r")) == NULL) perror("error");
- else {
- // Создание первого элемента
- fscanf(file, "%c", &elem);
- start = new line;
- start->elem = elem;
- now = start;
- // Пока не достигнут конец файла
- while (fscanf(file, "%c", &elem) != EOF) {
- addSymbol(now, elem);
- now = now->next;
- }
- fclose(file);
- // Вывод последовательности
- now = start;
- while (now != NULL) {
- printf("%c ", now->elem);
- count++;
- now = now->next;
- }
- // Вывод кол-ва элементов
- printf("count: %d\n", count);
- line* del; // del - переменная, которая будет "удаляться"
- // Кореляция четности элементов
- if (count % 2 == 0) {
- del = start;
- start = start->next;
- delete del;
- }
- // Основная задача - "выборка" нужных элементов
- now = start;
- while (now->next != NULL) {
- del = now->next;
- now->next = now->next->next;
- now = now->next;
- delete del;
- }
- // Вывод получившейся последовательности
- now = start;
- while (now != NULL) {
- printf("%c ", now->elem);
- now = now->next;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment