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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lp_4eva
Учусь...
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
#1

Проблемы с циклом!!! - C++

13.11.2011, 18:55. Просмотров 345. Ответов 7
Метки нет (Все метки)

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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include<iomanip>
 
using namespace std;
typedef  struct
{
    float key;
    char symbol;
    int s;
}RECNODE;
 
const int k=8;
 
void bublesort(RECNODE *r, int n)
{
    int i, j;
    RECNODE temp1;
    char temp2;
    for(i = 0; i < n; i++)
      for(j = n - 2; j >= i; j--)
        if(r[j + 1].key >r[j].key) 
        {
            temp1 = r[j + 1]; 
            temp2 = r[j + 1].symbol;
            r[j + 1] = r[j]; 
            r[j + 1].symbol = r[j].symbol;
            r[j] = temp1;
            r[j].symbol = temp2;
        }
}
 
int qiuk(RECNODE *r, int n){
 
    int i, j;
    float N1, N2;
    float N[k];
    N1=0;
    N2=0;
    for(i=1;i<n;i++)
    {
        for(j=0;j<i;j++)
            N1=N1+r[j].key;
        for(j=i;j<n;j++)
            N2=N2+r[j].key;
        N[i]=N1-N2;
        if(N[i]<0)
            N[i]=-N[i];
        N1=0;
        N2=0;
    }
    i=1;
    for(j=2;j<n;j++)
    {
        if(N[i]>N[j])
            i=j;
    }
    if(n == 1)
        return i=0;
    else
        return i;
    
}
 
 
 
void main()
{
    char a[]={"ABCDEFGH"};
    RECNODE b[k];
    RECNODE c[k];
    RECNODE d[k];
    int i;
    int L;
    int t;
    int n;
    for(t=0;t<k;t++)
    {
        cout<<"Enter word:"<<a[t]<<"The probability of: ";
        cin>>b[t].key;
        b[t].symbol=a[t];
        cout<<endl;
    }
    bublesort(b,k);
    for(t=0;t<k;t++)
    {
        c[t].key=b[t].key;
        c[t].symbol=b[t].symbol;
    }
    
    for(t=0;t<k;t++)
        cout<<setw(5)<<b[t].symbol;
    cout<<endl;
 
    
    i=qiuk(b,k);
    
    while(i != 0)
    {
        if(i != 0)
        {
            L=i;
            if(L==1)
            {
                b[0].s=0;
                for(t=1;t<L;t++)
                    b[t].s=1;
                for(t=0;t<L;t++)
                    cout<<setw(5)<<b[t].s;
            }
            else 
            {
                for(t=0;t<L;t++)
                {
                    b[t].s=0;
                    c[t].key=b[t].key;
                }
                for(t=0;t<L;t++)
                    cout<<setw(5)<<b[t].s;
            
                for(t=L;t<k;t++)
                    b[t].s=1;
                for(t=L;t<k;t++)
                    cout<<setw(5)<<b[t].s;
                cout<<endl;
                for(n=0;n<k-i;n++)
                    d[n].key=b[n].key;
            }
            if(b[k-2].s == 0)
                i=0;    
        }
        else
            cout<<setw(5)<<" ";
        if(b[k-2].s == 0)
            i=0;
        else
        {
            i=qiuk(c,i);
            i=qiuk(d,n);
        }
    }   
}
Помогите пожалуйста найти ошибку в коде? То есть когда запсукаешь цикл идет непрерывно

Добавлено через 7 минут
Ну кто-нидь помогите!!!=(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 18:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с циклом!!! (C++):

Проблемы с циклом while - C++
Подскажите пожалуйста: #include &lt;stdio.h&gt; int main() { int mas; int i=0; while(scanf(&quot;%d&quot;, &amp;mas)!=EOF) ...

Проблемы с циклом for - C++
Проблема в x! = он выводиться всегда как константа 6....( #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;cstdlib&gt; using...

Проблемы с циклом заполнения массива - C++
Здравствуйте! Помагите пожалуйсто, вот у меня есть код с помощью которого можно заполнить список. cout &lt;&lt; &quot;\n Add new...

Проблемы с циклом for. Вывести части стоимости килограмма конфет. - C++
Привет. Решаю задачи Абрамяна, перешел на for. И на пятом for у меня возникла проблема. #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается - C++
Возникло пару вопросов: #include &lt;iostream&gt; using namespace std; int main () { for (int i = 0; i&lt;=10; i++) cout &lt;&lt;...

Функция с циклом - C++
Учусь писать на с++. В универе дали задание написать програмку, которая вычисляет сумму элементов матрицы фиксированного размера, лежащих...

7
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,245
13.11.2011, 19:08 #2
Цитата Сообщение от lp_4eva Посмотреть сообщение
То есть когда запсукаешь цикл идет непрерывно
какой цикл то

Цитата Сообщение от lp_4eva Посмотреть сообщение
while(i != 0)
ентот ????

Цитата Сообщение от lp_4eva Посмотреть сообщение
while(i != 0)
{
if(i != 0)
{
странная конструкция
сюда никогда не зайдем
Цитата Сообщение от lp_4eva Посмотреть сообщение
}
else
cout<<setw(5)<<" ";
если i ==0 то не зайдем в цикл
а если не равна то заедем в if
и else не исполнится
Цитата Сообщение от lp_4eva Посмотреть сообщение
if(b[k-2].s == 0)
i=0;
мониторь отладчиком это условие
1
lp_4eva
Учусь...
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
13.11.2011, 19:10  [ТС] #3
Цитата Сообщение от ValeryS Посмотреть сообщение
если i ==0 то не зайдем в цикл
а если не равна то заедем в if
и else не исполнится
а как по другому написать???
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,245
13.11.2011, 19:12 #4
а ты словами объясни что хочешь сделать
1
lp_4eva
Учусь...
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
13.11.2011, 19:21  [ТС] #5
я хотела создать алгоритм шеннона фано. это типа дерево, левая сторона и правая сторона, меняем нулями и единичками данное слово. В префиксном коде для первой части алфавита присваивается двоичная цифра «0», второй части — «1». То есть если i не равно нулю он так и остается а если равно единице то тогда заменяем нулями. а если же нет то 1ке.
Кажется я все запутала=(
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,245
13.11.2011, 19:29 #6
посмотри сюда
http://compression.ru/download/articles/huff/tiger_shannon-fano.html
и сюда
http://ru.wikipedia.org/wiki/Алгоритм_Шеннона_—_Фано
в первой ссылке пример реализации
1
lp_4eva
Учусь...
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
13.11.2011, 19:35  [ТС] #7
эххх....спасибо конечно но я прочитала это=)))
у меня ж с кодом не лад=(( всмысле он выводит правильный результат но вместо одного зашифрованного кода выходит бесконечный цикл единиц и нулей.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,245
13.11.2011, 19:42 #8
по первой ссылке
внизу страницы ссылка "пример реализации"
при щелканьи открывается проект на VS по моему шестерка
посмотри как там реализован код
0
13.11.2011, 19:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 19:42
Привет! Вот еще темы с ответами:

Работа с циклом do while - C++
Здравствуйте! есть задача в которой используется метод прогонки с проверкой условия. я использовала следующий цикл: for(i=0;i&lt;=N-1;i++) ...

Задачка с циклом while - C++
И снова здравствуйте! Решаю простую задачку, но вот что-то накрутил с циклом while! Тесты проходят нормально на 0, 1, 2, но на всех...

Задача с циклом - C++
Здравствуйте. Начал осваивать язык С++. Возникла трудность с корректной записью логики задачи. Хочу услышать Ваши советы. ...

Программа с циклом - C++
# include &lt;iostream&gt; # include &lt;iomanip&gt; # include &lt;cmath&gt; # include &lt;conio.h&gt; int main() {using namespace std; float x, xn,...


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

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

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