Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Массивы и немного сортировки

Автор: Sargonnas 19.03.2007 7:15

Задача состоит в том, что есть массив char -кого типа, который мы вводим с клавиатуры. Требуется, проверить сколько в слове или же тупом наборе букв, количество каждого символа. то есть если мы ввели слово abrakadabra то программа должна выдать что символов а-5, b-2, r-2, k-1.
Застряла на сортировке, что то она совсем не идет . Вроде бы прога не тяжелая, но что то мозги ночью не варят. помогите. Вот изначальник:

#include <iostream.h>


int main(int argc, char* argv[])
{
const int iSize=15;
char sStr[iSize];
int iArr[iSize];

for (int i=0; i<iSize; ++i)
cin>>sStr[i];

for (int i=0; i<iSize; ++i)
{
sStr[i]=iArr[i];
cout<<sStr[j]<<" "<<iArr[j];
cout<<endl;
}


return 0;
}


Автор: Lapp 19.03.2007 7:34

Цитата(Sargonnas @ 19.03.2007 3:15) *

Застряла на сортировке, что то она совсем не идет

Скажи, а зачем тебе сортировка? По условию задачи она, вроде, не требуется..

Автор: klem4 19.03.2007 21:33

#include <iostream.h>

int main(void) {
char *s = new char[255];
int count[255];

cin >> s;

for (int i = 32; i < 256; count[i++] = 0);
for (int i = 0; i < strlen(s); count[(int)s[i++]]++);
for (int i = 32; i < 256; i++)
if (count[i] > 0) cout << "'" <<(char)i << "' : " <<count[i] << endl;

delete(s);

return 0;
}


Исправил

Автор: Алена 20.03.2007 2:07

Цитата(ansi_iso_iec_14882_2003)
5.3.5 Delete
1 The delete-expression operator destroys a most derived object (1.8) or array created by a new-expression.
Так что лучше пользоваться delete для удаления того, что выделено через new