margaritachka
Ученик
- Регистрация
- 10 Май 2010
- Сообщения
- 2
- Реакции
- 1
- Баллы
- 0
Не выводит очередь
задание:
Создать очередь для символов. Максимальный размер очереди вводится с экрана. Создать функции для ввода, вывода и определения размера очереди. Вводить символы с экрана в очередь. В случае совпадения вводимого символа с последним элементом очереди выводить размер очереди
в функции out должно выводить если очередь не пуста введенную очередь, а если очередь пуста,то сообщение "ochered' pusta"
выводит и саму очередь и сообщение в любом из улучаев.
уже замучалась, не знаю как исправить :tehnari_ru_117:
а остальные функии работают нормально
помогите пожалуйста :tehnari_ru_182:
задание:
Создать очередь для символов. Максимальный размер очереди вводится с экрана. Создать функции для ввода, вывода и определения размера очереди. Вводить символы с экрана в очередь. В случае совпадения вводимого символа с последним элементом очереди выводить размер очереди
в функции out должно выводить если очередь не пуста введенную очередь, а если очередь пуста,то сообщение "ochered' pusta"
выводит и саму очередь и сообщение в любом из улучаев.
уже замучалась, не знаю как исправить :tehnari_ru_117:
а остальные функии работают нормально
помогите пожалуйста :tehnari_ru_182:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
char end,*a,beg=1;
int n,f;
void out(void);
void inp(void);
void raz(void);
void main()
{
int i;
system("color 5a");
printf("Vvedite kol-vo elem ocheredi\n");
scanf("%d",&n);
a = new char[n];
end=0;
printf("Vvedite elem ocheredi\n");
for(i=0;i<n;i++)
{
end++;
scanf("%s",&a[end]);
}
while (1)
{
printf("1- vvod ocheredy\n");
printf("2 - vivod ocheredy\n");
printf("0- vichod\n");
scanf("%d",&f);
switch (f)
{
case 0:exit(1); break;
case 1:inp();break;
case 2:out(); break;
}
}
}
void inp(void)
{
int t,j;
system("cls");
printf("Vvedite kol-vo elem\n");
scanf("%d",&t);
printf("vvedite elementi\n");
for(j=0;j<t;j++)
{
end++;
scanf("%s",&a[end]);
if(a[end]==a[end-1])
raz();
}
}
void raz(void)
{
int k;
if (beg==end)
printf("ochered' pusta\n");
if (beg < end)
k=end - beg+1;
printf("razmer %d\n",k);
printf("\n---------------------------------------------\n");
main();
}
void out(void)
{
int i;
for(i=0;i<n;i++)
{
if (beg!=end) printf("%c ",a[beg]); //beg - nachalo
if (beg==end) { printf("%c \n",a[beg] );//vivod posl el
printf("ochered' pusta\n");
end=0;// vozvr begin i end v ishodn pozicii
beg=1;
}
beg++;//uvelichenie ukazatelia dlia vivoda el
if (beg==n+1) beg=1;//zakalsovivanie ocheredi
}
printf("\n");
}