Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 31.10.2015
Сообщений: 14
1

Занести размер дека в целую переменную

28.04.2016, 21:16. Показов 393. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток) У меня уже написана программа, но почем-то меню выводится дважды.
Вот задание:
Есть дек элементов типа Т и конечное число переменных типа Т и целого типа. В начальном состоянии в деке некоторое число элементов. Создать программу, после выполнения которой в деке остались бы те же элементы, а их количество было бы в одной из целых переменных.

Вот сам код:
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
#include <stdio.h>
#include<locale.h>
const int N=100; //размер дека
struct Deque
{int Data[N]; //массив данных
int last; //указатель на конец
};
void Creation(Deque *T) //создание дека
{T->last=0;
}
bool Full(Deque *T) //проверка дека на пустоту
{if (T->last==0) return true;
else return false;
}
void AddL(Deque *T) //добавление элемента в начало
{if (T->last==N)
{printf("\nДек заполнен\n\n"); return;}
int value;
printf("\nЗначение > ");
scanf("%i",&value);
for(int i=T->last;i>0;i--)
T->Data[i]=T->Data[i-1];
T->Data[0]=value;
T->last++;
printf("Элемент введен\n\n");
}
void AddR(Deque *T) //Добавление элемента в конец
{if (T->last==N)
{printf("\nДек заполнен\n\n"); return;}
int value;
printf("\nЭлемент > ");
scanf("%i",&value);
T->Data[T->last++]=value;
printf("Элемент введен\n\n");
}
void DeleteL(Deque *T) //удаление первого элемента
{for(int i=0;i<T->last;i++) //смещение элементов
T->Data[i]=T->Data[i+1];
T->last--;
}
void DeleteR(Deque *T) //удаление последнего элемента
{T->last--;
}
int Size(Deque *T) //размер дека
{return T->last;
}
int ShowDeque(Deque *T) //вывод дека
{printf("\nЭлементы дека: ");
for(int i=0;i<T->last;i++)
{printf("%5i",T->Data[i]);}
}
int Clear(Deque *T) //Очистить дек
{T->last=0;
}
//******************************************
int main() //главная функция
{setlocale(LC_ALL,"russian_russia.1251");
Deque T;
Creation(&T);
int m,i,integer[100];
char number;
do
{
printf("1. Введите целые переменные:\n");
printf("2. Введите первый элемент\n");
printf("3. Введите последний элемент\n");
printf("4. Удалить первый элемент\n");
printf("5. Удалить последний элемент\n");
printf("6. Вывести дек на экран\n");
printf("7. Занести размер дека в веденную пользователем целую переменную\n");
printf("8. Удалить все элементы дека\n");
printf("9. Вывести целые переменные на экран\n");
printf("0. Выход\n\n");
printf("Номер команды > ");
scanf("%c",&number);
switch(number)
{case '1': printf("\nВведите количество целых переменных ");
scanf("%i",&m);
printf("\nВведите целые переменные:\n");
for(i=0;i<m;i++)
scanf("%i",&integer[i]);
break;
//-----------------------------------------------
case '2': AddL(&T); break;
//-----------------------------------------------
case '3': AddR(&T); break;
//-----------------------------------------------
case '4': if (Full(&T)) printf("\nДек пуст\n\n");
else {DeleteL(&T);
printf("\nЭлемент удален\n\n");
} break;
//-----------------------------------------------
case '5': if (Full(&T)) printf("\nДек пуст\n\n");
else {DeleteR(&T);
printf("\nЭлемент удален\n\n");
} break;
//-----------------------------------------------
case '6': if (Full(&T)) printf("\nДек пуст\n\n");
else ShowDeque(&T);
printf("\n\n");
break;
//-----------------------------------------------
case '7':
if (Full(&T)) printf("\nДек пуст\n\n");
else {
printf("\nВведите номер целой переменной > ");
scanf("%i",&i);
integer[i]=Size(&T);
printf("\nЦелая переменная: ");
printf("%i", integer[i]);
}
break;
//-----------------------------------------------
case '8':
if (Full(&T)) printf("\nДек пуст\n\n");
else Clear(&T);
break;
//-----------------------------------------------
case '9':
printf("\nЦелые переменные:\n");
for (i=0;i<m;i++)
printf("%5i",integer[i]);
printf("\n");
break;
//-----------------------------------------------
case '0': break;
default:
printf("\nКоманда не определена\n\n");
break;
}
}while (number!=0);
getchar();
return 0;
}
Заранее спасибо за помощь!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2016, 21:16
Ответы с готовыми решениями:

Написать функцию, которая возвращает целую переменную со значением числа
Число в 16-ой системе заданно в виде массива int,каждый элемент массива соответствует одному...

В однобайтовую переменную занести попорядку значения старшего и младшего битов
дано длинное целое неотрицательное число. В однобайтовую переменную занести попорядку значения...

Как написать функцию инициализации числа из целой переменной и сохранения числа в целую переменную?
как написать функцию инициализации числа из целой переменной и сохранения числа в целую переменную?

Используя модуль для реализации дека целых чисел, реализовать очередь на базе дека
Уважаемые программисты!Очень нужна Ваша помощь: (помогите решить, разобраться или хотябы просто...

0
28.04.2016, 21:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2016, 21:16
Помогаю со студенческими работами здесь

Считывание элементов дека с файла и запись дека в файл
Доброго времени суток. Я написал код программы про дек с ограниченным входом слева (то есть с него ...

Числа в массиве, в целую переменную
Здравствуйте, возник вопрос: Допустим у меня существует массив a = 1 a = 3 a = 6 Их нельзя...

Запихнуть в выводную переменную целую ветку условий и функций
Привет! Прошу помощи! Нужно организовать вывод через переменную ссылок пагинатора. Вот всю эту...

Занести значение в переменную из БД
Есть таблица с именем testtable, в ней ячейки id, name, famname, userday(это возраст человека)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru