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

Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно??? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на адресную арифметику http://www.cyberforum.ru/cpp-beginners/thread389149.html
Добрий день. Допоможіть, будь ласка, вирішити такі завдання: Написати програму на мові Сі, яка складається з наступних дій: 1. Створення за допомогою адресної арифметики двох послідовностей символьних значень з 10 елементів згідно з варіантом. 2. Створення третьої послідовності з рівних значень елементів двох послідовностей, використовуючи адресну арифметику. 3. Обробки третьої послідовності...
C++ Системы счисления! напишите программу пожалуйста!!! Даны действительное число x, натуральное число q (0 =< x < 1, q => 2). Получить пять цифр q-ичного представления числа x, т.е. получить последовательность целых неотрицательных a_1, ..., a_5 такую, что x = a_1*q^-1 + ...a_5*q^-5 + r, 0 =< a_i =< q-1, r < q^-5. http://www.cyberforum.ru/cpp-beginners/thread389140.html
[Visual C++] Вывод в файл. C++
Пдоскажите пожалуйста как вывести информацию в файл? Делаю так: FILE *flog; char* file_name = "file.log"; flog = fopen ( file_name, "w" ); потом: fprintf(flog, "траттатат"); Но компилятор вылетает с ошибкой: error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию error C2040: flog: "int" отличается по уровням косвенного обращения...
Вычислить значение выражения ak-ak-1+ak-2-...(-1)ka0 C++
не каждый решит Но.. попробуйте дайте код,помогите пожалуйста! Пусть дано натуральное число n (запись числа n в десятичной системе счисления есть akak-1...a0). Чему равно выражение ak-ak-1+ak-2-...(-1)ka0.
C++ матрица в треугольную матрицу http://www.cyberforum.ru/cpp-beginners/thread389117.html
Нужно из прямоугольной матрицы преобразовать в треугольную, но он не делает этого с матрицей 2 на 2 #include <iostream> #include <time.h> const int d=100; const int t=100; //константный размер матрицы (можно менять) using namespace std; int main() { srand (time(NULL)); const int c=100;
C++ Замена прописных букв строчными Всем привет! Такая проблемка: вводим строку и, если после , или ; стоит прописная буква - заменяем эту букву на строчную. Написал такой код: #include <stdio.h> #include <ctype.h> #include <conio.h> int main () { подробнее

Показать сообщение отдельно
lp_4eva
Учусь...
 Аватар для lp_4eva
59 / 2 / 1
Регистрация: 20.03.2010
Сообщений: 167
22.11.2011, 15:12  [ТС]     Не получается чтобы он все символы с текста читал и типа счетчика который считает одинаковые символы как один и плюсует их....Как сделать правильно???
Вот переделала сделала вроде как надо...
Но проблема в том что он не выводит результат...
Вообще
Почему?
Помогите разобраться=)
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
#include< stdio.h>
#include< conio.h>
#include< string.h>
#include <iostream>
#include <fstream>
#include <cmath>
 
using namespace std;
struct node
{
 char sym[1000];
 float pro;
 int arr[20];
 int top;
 double total;
}s[255];
 
typedef struct node node;
 
void shannon(int l,int h,node s[])
{
 float pack1=0,pack2=0,diff1=0,diff2=0;
 int i,d,k,j;
 if((l+1)==h || l==h || l>h)
 {
 if(l==h || l>h)
 return;
 s[h].arr[++(s[h].top)]=0;
 s[l].arr[++(s[l].top)]=1;
 return;
 }
 else
 {
 for(i=l;i<=h-1;i++)
 pack1=pack1+s[i].pro;
 pack2=pack2+s[h].pro;
 diff1=pack1-pack2;
 if(diff1< 0)
 diff1=diff1*-1;
 j=2;
 while(j!=h-l+1)
 {
 k=h-j;
 pack1=pack2=0;
 for(i=l;i<=k;i++)
 pack1=pack1+s[i].pro;
 for(i=h;i>k;i--)
 pack2=pack2+s[i].pro;
 diff2=pack1-pack2;
 if(diff2< 0)
 diff2=diff2*-1;
 if(diff2>=diff1)
 break;
 diff1=diff2;
 j++;
 }
 k++;
 for(i=l;i<=k;i++)
 s[i].arr[++(s[i].top)]=1;
 for(i=k+1;i<=h;i++)
 s[i].arr[++(s[i].top)]=0;
 shannon(l,k,s);
 shannon(k+1,h,s);
 }
}
 
void main()
{
 int n=0;
 int i = 0;
 int j = 0;;
 float x=0;
 float total=0.0;
 char ch[10];
 node temp;
 ifstream ofile;
 ofstream infile;
 
 ofile.open("1.txt");
 
  if(!ofile)
      cout<<"\n File not found ";
 
  ofile>>s[i].sym;
   for(i=0;i<n;i++)
 {
 cout<<"The symbols are: ---> "<<s[i].sym;
 }
 for(i=0;i<n;i++)
 {
     s[i].pro= s[i].sym[i] /s[i].total;
 cout<<"\n\tProbability for %s ---> "<<s[i].sym<<"is: "<<s[i].pro;;
 s[i].pro=x; 
 total=total+s[i].pro;
 }
 s[i].pro=1-total;
 for(j=1;j<=n-1;j++)
 {
 for(i=0;i< n-1;i++)
 {
 if((s[i].pro)>(s[i+1].pro))
 {
 temp.pro=s[i].pro;
 strcpy(temp.sym,s[i].sym);
 s[i].pro=s[i+1].pro;
 strcpy(s[i].sym,s[i+1].sym);
 s[i+1].pro=temp.pro;
 strcpy(s[i+1].sym,temp.sym);
 }
 }
 }
 for(i=0;i< n;i++)
 s[i].top=-1;
 
 shannon(0,n-1,s);
printf("---------------------------------------------------------------");
 printf("\n\n\n\tSymbol\tProbability\tCode");
 for(i=n-1;i>=0;i--)
 {
 printf("\n\t%s\t%f\t",s[i].sym,s[i].pro);
 for(j=0;j<=s[i].top;j++)
 printf("%d",s[i].arr[j]);
 }
printf("\n---------------------------------------------------------------");
 getch();
}
 
Текущее время: 10:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru