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

исправить двусвязный список? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввести строку символов, если ее длина нечетная, удалить символ, стоящий посередине строки. http://www.cyberforum.ru/cpp-beginners/thread324992.html
Помогите пожалуйста с решением Ввести строку символов, если ее длина нечетная, удалить символ, стоящий посередине строки.
C++ Дана последовательность целых чисел a1, a2, ..., an. Не понимаю почему не работает Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> void main(void) { http://www.cyberforum.ru/cpp-beginners/thread324990.html
C++ Пирамидка
Привет всем. Помогите пожалуйсто написать программу, которая с помощью двух вложенных циклов печатает пирамидку. Мой код #include<iostream> using namespace std; int main() {setlocale(LC_ALL,"Rus"); char a='X',t=' ';
C++ Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное.
Дана последовательность целых чисел a1, a2, ..., an. Выяснить, какое число встречается раньше - положительное или отрицательное. Не работает :hysteric: Помогите, пожалуйста..... #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h>
C++ Ввести строку символов, если ее длина кратна 2, посчитать количество цифр в этой строке. http://www.cyberforum.ru/cpp-beginners/thread324967.html
Помогите,пожалуйста, решить прогу....Ввести строку символов, если ее длина кратна 2, посчитать количество цифр в этой строке. Решить задачу в VC++.
C++ gotoxy() Я работаю в Qt creator и чтобы пользоваться gotoxy() я вставил вот такую функцию void gotoxy(int xpos, int ypos) { COORD scrn; HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE); scrn.X = xpos; scrn.Y = ypos; подробнее

Показать сообщение отдельно
2xep
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 12
23.06.2011, 16:06     исправить двусвязный список?
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include "stdafx.h"
#include "conio.h"
#include "locale.h"
#include "string.h" // для strcmp();
#include <ctype.h>
#include <stdlib.h>
struct student
{
    char name[20];
    int group;
    char ocenki[11];
    struct student *prior; //Указатель на предыдущий элемент:
    struct student *next;  //Указатель на следущий элемент:
 
};
void pop(student* b)
{
student* tmp=NULL;
while(b!=NULL)
{
tmp=b;
b=b->prior;
delete tmp;
}
}
void input(struct student *h, int k)
{
    struct student *ptr;
    ptr=new(student);
    ptr->next=h;
    ptr->prior=h->prior;
    printf("Введите имя студента: ");
    scanf("%s", ptr->name);
    printf("Введите его группу: ") ;
    scanf("%d", &ptr->group);
    printf("Введите его оценки: ");
    scanf("%s", ptr->ocenki);
    //заполняем полученые данные
    if (k==0)
    {
        h->next=ptr;
        h->prior=ptr;
    }
    else
    {
        h->prior->next=ptr;
        h->prior=ptr;
    }
}
void print(struct student *h,int k)
{
    struct student *ptr;
    ptr=new(student);
    ptr=h;
    if (k==0) printf("База пуста");
    else
    {
    //  struct student *ptr;
    //  int i;
    //  ptr=new(student);
        ptr=h->next;
        int e;
        printf("weqw ");
            scanf("%d",&e);
        {
    int j=1;
        printf("____________________________________________\n"
               "| № |   cтудент   |   группа    |  оценки   |\n"
               "--------------------------------------------\n");
 
        //while(ptr->next==NULL);
        for(int i=0;i<k;i++)
         {
             if (e==0)
             {
        printf("| %d |",j++);    
        printf("  %20s |",ptr->name);
        printf("  %d |",ptr->group);
        printf(" %11s |\n",ptr->ocenki);
             }
        ptr=ptr->next;  
          }
        if (e==1)
        {
            for(int i=0;i<k;i++)
         {
             ptr=ptr->prior;  
        printf("| %d |",j++);    
        printf("  %20s |",ptr->name);
        printf("  %d |",ptr->group);
        printf(" %11s |\n",ptr->ocenki);
        
          }
        }
         
 
}
    }
}
 
 
 
 
 
void init(struct student *h)
{
    //создание наального элемента
    h = new(student); 
    h->next=h; 
    h->prior=h; 
}
int _tmain(int argc, _TCHAR* argv[])
{
int a;//номер работы из меню
int k=0;
setlocale(LC_ALL, "Russian");
struct student *h;
h=new(student);
init(h);
//Вывод меню на экран
while(1)
{
    system("cls");
    printf("            \"заявки\"        \n"
        "                МЕНЮ                  \n"
        "1. Ввод сведений о новом студенте.\n"
        "2. Просмотр всех студентов\n"
        "3. Окончание работы.\n");
//Ввод и обработка номера пункта меню
printf("\n\nВведите номер пункта меню: ");
scanf("%d", &a);
system("cls");
switch(a)
{
case 1: 
          input(h,k);  //1. Ввод сведений о новом студенте.
          k++;
          break;
case 2: 
         print(h,k);  //3. Просмотр содержимого базы данных.
          _getch();
          break;
 
case 3: 
          return 0; //Окончание работы.
          break;
 
default: 
          printf("\nНеверно указан номер пункта меню!\n");
          _getch();
}   
}
pop(h);
}
Суть проблемы в общем ззаключается в том, что преподу нашему делать нечего во время сессии.

Ей не нравится переменная К, которая выполняет функцию счетчика, она считает кол-во введенных элементов в структуру, пытался ее убрать, но ничего хорошего не вышло, так что выкладываю изначальный код. Поможете с проблемой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru