Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41
#1

кольцевая очередь - C (СИ)

31.05.2012, 22:41. Просмотров 1875. Ответов 7
Метки нет (Все метки)

очередь в виде кольцевого массива. Если в очередь поступает положительное число, то её размер увеличивается на 1, если отрицательное - не меняется, а если ноль, то очистка очереди.
никак не могу разобраться что к чему. помогите с кодом, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 22:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос кольцевая очередь (C (СИ)):

Очередь на Си - C (СИ)
Здраствуйте. Создать файл целых чисел.За один просмотр файла создать новый файл, в котором будут находиться сначала все отрицательные...

очередь на Си - C (СИ)
Создать файл целых чисел.За один просмотр файла вывести сначала порядковые номера наименьших чисел, а затем-самых больших, сохраняя порядок...

очередь сообщений - C (СИ)
Помогите, пожалуйста, написать программу на Си. Клиент отправляет сообщения через сокеты или SysV (или POSIX) message queue, сервер...

Очередь с приоритетами - C (СИ)
Напишите программу, реализующую очередь с приоритетами.

очередь(ДЕК). - C (СИ)
Проблема: Не работает добавление с начала ( ф-ция dek(); ) что не так? struct queue{ char aa; struct queue *next; struct...

Очередь выполнения - C (СИ)
Задача: даны периоды времени t1,t2,…tn, необходимые для выполнения n программ. Нужно реализовать следующий пример: Пример: n=3; ...

7
System9266
7 / 7 / 3
Регистрация: 31.05.2012
Сообщений: 98
31.05.2012, 23:20 #2
Кое-что похожее...

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
/*Задание:Если x -положительное число,то тогда очередь(размер) возрастает на еденицу ,
а если x -отрицательный на еденицу уменьшается. задан кольцевой массив */
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
const int MAX=5;
void main()
{int top,bottow,size;
int i;
float x,a[MAX];
top=0;
bottow=0;
size=0;
if (size!=MAX)
{size++;
for (i=0;i<5;i++)
{
printf("vvedite \n");
scanf("%f",&x);
 
a[bottow]=x;
if(bottow==MAX-1) bottow=0;
else bottow++;
}
/*
if (size!=0)
{
size--;
x=a[top];
if (top==MAX-1) top=0;
else top++;}
*/
}
for(i=0;i<5;i++)
cout << a[i];
}
1
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41
31.05.2012, 23:28  [ТС] #3
это я находил. этот сырой код ничем не поможет. у меня тоже примерно такой же.
0
System9266
7 / 7 / 3
Регистрация: 31.05.2012
Сообщений: 98
01.06.2012, 00:34 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Переписал под си
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
/*чередь в виде кольцевого массива. Если в очередь поступает положительное число,
то её размер увеличивается на 1, если отрицательное - не меняется, а если ноль, то очистка очереди.*/
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
 const int MAX=5;
int top,bottow,size;
int i;
float x,a[MAX];
top=0;
bottow=0;
size=0;
if (size!=MAX)//если размер не равен максимальному,то значение увеличивается на 1 в цикле с 0 до 5
{size++;
for (i=0;i<5;i++)
{
printf("vvedite \n");//вывод на экран введите
scanf("%f",&x);//ввод элементов
 
a[bottow]=x;//вводимому элементу присваиваем массив a[bottow]
if(bottow==MAX-1) bottow=0;// если положительное
else bottow++;//иначе число увеличится на 1
}
 
if (size!=0)//если размер не равен 0
{
x=a[top];//вводимому числу присваиваем массив a[top]
if (top==MAX-1) top=0;//если отрицательное
else top++;}
//а если ноль
//if (size=0)
//сюда вводить очистку
}
for(i=0;i<5;i++)
printf ("%f",a[i]);
 
return 0;
}
1
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41
01.06.2012, 00:51  [ТС] #5
мне кажется или вы переписали тот же код с добавлением своих комментариев?
0
System9266
7 / 7 / 3
Регистрация: 31.05.2012
Сообщений: 98
01.06.2012, 12:13 #6
Читать не умеешь? Код правильный, запускаться начал, если отрицательное - не меняется, а если ноль, то очистка очереди.
Я хз как сделать очистку...тебе только её осталось подставить.
1
Vitalick66
2 / 2 / 0
Регистрация: 23.05.2012
Сообщений: 8
01.06.2012, 12:25 #7
Спс, как раз такая же, только чуть переделанная
0
no SOPA
0 / 0 / 1
Регистрация: 20.02.2012
Сообщений: 41
01.06.2012, 20:44  [ТС] #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
читать я умею, уж поверьте на слово. но ваш код мне не нравится. сегодня запилил сам:
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
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
const int MAX=5;
void main()
 {
 clrscr();
 int top,bottom,size,i;
 int x,a[MAX],k=0,s=0;
 top=0;
 bottom=0;
 size=0;
 x=1;
 while (x!=0&&size!=MAX)
 {
 cin>>x;
 if (x>0)
  {
  size++;
  k++;
  a[bottom]=x;
  if(bottom==MAX-1)
   bottom=0;
  else
   bottom++;
  }
 if (x<0)
  {
  s=1;
  k++;
  a[bottom]=x;
  if(bottom==MAX-1)
   bottom=0;
  else
   bottom++;
  }
 }
 if(x==0)
 {
 while (size!=0)
  {
  size--;
  x=a[top];
  if(top==MAX-1)
   top=0;
  else
   top++;
  }
 cout<<"queue cleaned";
 }
 else
  if (s==1)
   for (i=1; i<k; i++)
    cout<<a[i]<<"    ";
  else
   for (i=0; i<k; i++) 
    cout<<a[i]<<"    ";
 getch();
 }
всё работает правильно. препод принял.
0
01.06.2012, 20:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 20:44
Привет! Вот еще темы с ответами:

Построить очередь из чисел - C (СИ)
Здравствуйте, написал код, не запускается, начал отладку, смог локализировать ошибку в фрагменте, который прилагается. Заранее спасибо за...

стеки и очередь (язык Си) - C (СИ)
помогите пожалуйста, ничего не понятно! Вычислить значение выражения следующего вида: X1Xn+ X1Xn-1 + … + XnX1, при этом значения X1, X2,...

Блок-схема очередь - C (СИ)
Пишу первую курсовую. Задание: очередь на базе списка\массива (язык Си) Может у кого-нибудь есть готовая блок-схема для Очереди) или...

Очередь как кольцевой массив - C (СИ)
Очередь как кольцевой массив. Скопировать содержимое стека в очередь. Помогите пожалуйста, я в программирование не особо, а сдать надо....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru