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

Алфавит - C++

Восстановить пароль Регистрация
 
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 09:38     Алфавит #1
You given N and one line of length N (1<=N<=1000)than consist of letter in interval A..Z.
Your task is to find out how often each letter from the alphabet is found in the line.
First line of your output have to consist of total amount of unduplicated letters. Then your program have to print only the letters that exists in given line in the following format:
LETTER COUNT ex : (A 1)
The letter have to be printed in alpahbet order (A,B,C...Z).


Sample input 1:
1
A

Sample output 1:
1
A 1

Sample input 2:
6
ABBBAZ

Sample output 2:
3
A 2
B 3
Z 1

Помогите решить у меня есть код но он токо подсчитывает A вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main ()
{
  char a[1000];
  int n, x=0;
  cin>>n;
  for(int i=0; i<n; i++)
  {
    cin>>a[i];
  }
  for(int i=0; i<n; i++)
  {
    if(a[i]=='A')
      x++;  
  }
  cout<<x;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2013, 09:38     Алфавит
Посмотрите здесь:

C++ Строки и русский алфавит
C++ Алфавит
русский алфавит C++
Алфавит вивод C++
C++ Алфавит и сравнение слов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.10.2013, 10:21     Алфавит #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
#include <iostream>
 
using namespace std;
 
int main ()
{
   char str[1001];
   int   freq[26] = {0};
   int   n, count = 0;
  
   cin >> n;
 
   getline(str, n);
 
   for (int i = 0; i < n; i++)
   {
      if (str[i] >= 'A' && str[i] <= 'Z')
         freq[str[i] - 'A']++;
   }
 
   for (int i = 0; i < 26; i++)
   {
      if (frec[i] != 0)
         count++;
   }
 
   cout << count << endl;
 
   for (int i = 0; i < 26; i++)
   {
      if (frec[i] != 0)
         cout << i + 'A' << ' ' << frec[i] << endl;
   }
 
   return 0;
}
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 10:31  [ТС]     Алфавит #3
Цитата Сообщение от kazak Посмотреть сообщение
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
#include <iostream>
 
using namespace std;
 
int main ()
{
   char str[1001];
   int   freq[26] = {0};
   int   n, count = 0;
  
   cin >> n;
 
   getline(str, n);
 
   for (int i = 0; i < n; i++)
   {
      if (str[i] >= 'A' && str[i] <= 'Z')
         freq[str[i] - 'A']++;
   }
 
   for (int i = 0; i < 26; i++)
   {
      if (frec[i] != 0)
         count++;
   }
 
   cout << count << endl;
 
   for (int i = 0; i < 26; i++)
   {
      if (frec[i] != 0)
         cout << i + 'A' << ' ' << frec[i] << endl;
   }
 
   return 0;
}
идентификатор "getline" не определен,как можно исправить? и что обозначает getline?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.10.2013, 10:33     Алфавит #4
Сорри(, давно практики не было.
C++
1
cin.getline(str, n);
Добавлено через 37 секунд
Означает считать строку str, длинной n.
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 10:43  [ТС]     Алфавит #5
Цитата Сообщение от kazak Посмотреть сообщение
Сорри(, давно практики не было.
C++
1
cin.getline(str, n);
Добавлено через 37 секунд
Означает считать строку str, длинной n.
ясно, и еще вы вместо frec имели ввиду freq? если да то программа не робит чето ввожу слово он выводит мне 0(ноль)
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.10.2013, 10:51     Алфавит #6
Да, там опечатка.

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
#include <iostream>
 
using namespace std;
 
int main ()
{
   char str[1001];
   int   freq[26] = {0};
   int   n, count = 0;
  
   cin >> n;
   cin.sync();
 
   cin.getline(str, n+1);
 
   for (int i = 0; i <= n; i++)
   {
      if (str[i] >= 'A' && str[i] <= 'Z')
         freq[str[i] - 'A']++;
   }
 
   for (int i = 0; i < 26; i++)
   {
      if (freq[i] != 0)
         count++;
   }
 
   cout << count << endl;
 
   for (int i = 0; i < 26; i++)
   {
      if (freq[i] != 0)
         cout << char(i + 'A') << ' ' << freq[i] << endl;
   }
 
   return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2013, 10:54     Алфавит
Еще ссылки по теме:

C++ Алфавит. Все вариации
Циклический алфавит ascii C++
C++ Пытаюсь создать алфавит

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

Или воспользуйтесь поиском по форуму:
AlisherIITU
2 / 2 / 1
Регистрация: 10.09.2013
Сообщений: 129
06.10.2013, 10:54  [ТС]     Алфавит #7
Цитата Сообщение от kazak Посмотреть сообщение
Да, там опечатка.

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
#include <iostream>
 
using namespace std;
 
int main ()
{
   char str[1001];
   int   freq[26] = {0};
   int   n, count = 0;
  
   cin >> n;
   cin.sync();
 
   cin.getline(str, n+1);
 
   for (int i = 0; i <= n; i++)
   {
      if (str[i] >= 'A' && str[i] <= 'Z')
         freq[str[i] - 'A']++;
   }
 
   for (int i = 0; i < 26; i++)
   {
      if (freq[i] != 0)
         count++;
   }
 
   cout << count << endl;
 
   for (int i = 0; i < 26; i++)
   {
      if (freq[i] != 0)
         cout << char(i + 'A') << ' ' << freq[i] << endl;
   }
 
   return 0;
}
Все работает, Благодарю)
Yandex
Объявления
06.10.2013, 10:54     Алфавит
Ответ Создать тему
Опции темы

Текущее время: 00:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru