Форум программистов, компьютерный форум CyberForum.ru

функция удаления работает не корректно почему??? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Множество точек m http://www.cyberforum.ru/cpp-beginners/thread378258.html
Трям. Имеется условие: Задано множество точек m в трехмерном пространстве. Найти такую из них, что шар заданного радиуса с центром в этой точке содержит максимальное число точек из m. Примерный алгоритм: Проверяем в цикле все точки. Проверяем во вложенном цикле расстояние от текущей точки до одной из остальных. Если оно меньше R - увеличиваем счетчик для этой точки. После этого еще раз...
C++ метод гаусса Помогите,пожалуйста Преподаватель попросил расписать программу по блокам #include "stdio.h" #include "conio.h" #include <iostream> #include <string.h> #include <stdio.h> // Описания функций ввода-вывода #include <math.h> // Описания математических функций using namespace std; http://www.cyberforum.ru/cpp-beginners/thread378255.html
Вывести на экран числа C++
Вывести на экран числа в виде слейдующей таблицы: 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10
C++ Вывести на экран таблицу
Вывести на экран таблицу перевода расстояний в дюймах в сантиметры для значений 2,4,6,…12 дюймов (1 дюйм=25.4 мм) написать программу только правильную
C++ вычислить значение выражение http://www.cyberforum.ru/cpp-beginners/thread378248.html
Разработать функцию f(n),которая для заданного натурального числа находит значение √n +n .Вычислить с помощью неё значение выражение (√6+6)/2 +(√13+13)/2+(21+21)/2.Написать программу на с++
C++ помогите пожалуйста решить задачи на series кому не трудно(c++) Дано целое число N и набор из N целых чисел. Вывести в том же по рядке номера всех нечетных чисел из данного набора и количество K таких чисел Дано целое число K и набор ненулевых целых чисел; признак его за- вершения — число 0. Вывести количество чисел в наборе, меньших K. подробнее

Показать сообщение отдельно
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627

функция удаления работает не корректно почему??? - C++

06.11.2011, 06:47. Просмотров 456. Ответов 1
Метки (Все метки)

функция удаления в контрольной не работает... возился два дня с ней никак не могу сделать чтоб работала как надо... явно надо по больше читать про работу со списками... но просто время поджимает сдавать контрольную, функция должна удалять элемент после введеного номера, тоесть если ввел номер один то удалить должна элемент под номером два, у меня получается что ввожу 1 и удаляет первый элемент, а все последующие если ввожу вообще не удаляет...
вот листинг основы чтоб представлять можно было программу ниже саму функцию отдельно выведу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# include <iostream>              // класс для работы с вводом-выводом
# include <windows.h>             // для функции    CharToOem();
# include <fstream>           // класс для работы с файлом
 
using namespace std;
    char bufRus[256];
    char* Rus(const char* text)
    {
        CharToOem(text, bufRus);
    return bufRus;
    }
 
struct lfile{
    char name[15];
    char data[10];
    int upd;
};
struct sp{
    lfile elfile;   // поле данных
    sp *next;   // указатель
};
 
sp*print_list(sp *list);//прототип функции вывод на экран
 
 
sp* ft_enter();//прототип функции ввод из текстового файла
 
sp* fs_enter();// прототип функции ввод с экрана
sp* sort(sp *list);// прототип сортировки
void search(sp *list); // прототип функций поиск по имени и вывод в файл
void fsearch(sp *list); //прототип функции поиск файла с наибольшим количеством обращений
 //
sp* pind(sp *list); //прототип получения адреса
sp* del(sp *list,sp *adr);// прототип функции удаления файла
sp * vst(sp *list,sp *adr);// прототип фунции вставка файла
void zmn(sp *list); // прототип функции замена файла
 
void main()
{
   int v;
   sp *k;
   do{
      cout<<Rus("  1: формирование списка из текстового файла")<<endl;
      cout<<Rus("  2: формирование списка с экрана")<<endl;
      cout<<Rus("  3: поиск по заданному полю с сохранением результатов в файле")<<endl;
      cout<<Rus("  4: выборка файла с наибольшим количеством обращений")<<endl;
      cout<<Rus("  5: замена записи")<<endl;
      cout<<Rus("  6: удаление записи после указанного адреса")<<endl;
      cout<<Rus("  7: вставка записи после указанного адреса")<<endl;
      cout<<Rus("  8: вывод списка")<<endl;
      cout<<Rus("  9: выход")<<endl;
      cout<<Rus("вариант ")<<endl;
      cin>>v;
      switch(v){
        case 1: k = ft_enter(); break;/*вызов функции ввод тектового файла в переменную к, чтоб по ней потом можно было делать сортировку, поиск и тд*/
        case 2: k = fs_enter(); break;// вызов функции ввод с экрана
        case 3: search(k);break;//вызов функции поиск по переменной к и сохранение в файл одной строки
        case 4: fsearch(k); break;//вызов функции поиск файла с наибольшим количеством обращений к нему
        case 5: zmn(k); print_list(k); break;//вызов функции замена строки по указаному номеру
        case 6: k = del(k,pind(k)); print_list(k); break;// вызов функции удаление строки после указанного номера
        case 7: k = vst(k,pind(k)); print_list(k); break;//вызов функции вставка строки после указанного номера
        case 8: print_list(k);break;//вызов функции вывод списка на экран
        case 9:return; break;
 
        }
    } while(true);//цикл будет повтрятся
}
сама функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//удаление элемента с адресом adr
sp* del(sp *list,sp *adr){
    sp *pt=list, *q;
    if(adr==list){// если номер совпал то...
        q=adr->next;
        pt=q;
        q=adr->next;//
 
    }else{
        q = adr;
        adr=adr->next;
     }
    delete(q); //удаляет строку после указанного номера
    return pt;
}
Добавлено через 13 часов 40 минут
help meee
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru