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

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

Войти
Регистрация
Восстановить пароль
 
nikola_omsk
3 / 3 / 0
Регистрация: 27.05.2011
Сообщений: 73
#1

даны цифры от 1 до 9 которые соответствуют каким-либо буквам от A(a) до I(i). С клавиатуры вводятся различные буквы.должна появится строка из букв - C++

10.05.2012, 21:27. Просмотров 705. Ответов 0
Метки нет (Все метки)

даны цифры от 1 до 9 которые соответствуют каким-либо буквам от X до Y. С клавиатуры вводятся различные буквы. Далее должна появится строка состоящая из цифр соответсвующих буквам присутствующим в предыдущей строке упорядоченных по возрастанию слева на право. Буквы латинские прописные и строчные. Заранее благодарю

Вот код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <conio.h>
#include <string.h>
int main()
{
    int b[9]={0,0,0,0,0,0,0,0,0}, i, size;
    char a[256];
    scanf("%s",&a);
    size=strlen(a);
    for(i=0; i<size; i++)
        b[a[i]-97]++;
    for(i=0; i<9; i++)
        while(b[i]!=0)
        {
            printf("%d", i+1);
            b[i]--;
        }
 
getch();
return 0;
}
однако надо сделать используя динамический массив данного размера запрошенный у пользователя, если длина строки меньше то уменьшить кол-во памяти под массив , в конце освободить память, и не применять индексирования к переменным а использовать разыменование указателей и не использовать стандартные библиотечные функции для работы со строками а явно выполнять все действия по конкатенации копированию сравнению и т.д. Помогите пожалуйста...

Добавлено через 2 часа 41 минуту
подскажите на счет массива

Добавлено через 1 час 33 минуты
набросайте хоть примерно

Добавлено через 28 минут
может так..откликнитесь
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
#include <conio.h>
#include <string.h>
int main()
{
    int b[9]={0,0,0,0,0,0,0,0,0}, i, size;
    char *a;
    printf("Input number of elements: ");
    fflush(NULL);
    scanf("%d", &size);
    a = (int*)malloc( size*sizeof(*a) );
    scanf("%s",&*a);
    if (strlen(a)<size)
     a = (int*)malloc( strlen(a)*sizeof(*a) );
        for(i=0; i<size; i++)
        b[a[i]-97]++;
    for(i=0; i<9; i++)
        while(b[i]!=0)
        {
            printf("%d", i+1);
            b[i]--;
        }
free(a);
getch();
 
return 0;
}
Добавлено через 3 часа 12 минут
неправильная работа с памятью..подскажите

Добавлено через 54 минуты
что еще можно переделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2012, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос даны цифры от 1 до 9 которые соответствуют каким-либо буквам от A(a) до I(i). С клавиатуры вводятся различные буквы.должна появится строка из букв (C++):

Решить ребус, при условии что разным буквам соответствуют разные цифры. - Turbo Pascal
Здравствуйте. Напишите пожалуйста программу вот с таким условием: Решить ребус, при условии что разным буквам соответствуют разные цифры....

Строка s2 должна содержать буквы только из множества букв 1-го слова 1-й строки - Pascal ABC
ввести строку s1 с помощью оператора readln. Определить ее реальную длину и 1-е слово. В строку s2 вводить информацию посимвольно с помощью...

Есть некая строка (буквы либо цифры) и нужно получить её MD5 шифр - PascalABC.NET
Есть некая строка (буквы либо цифры) и нужно получить её MD5 шифр Есть некий код function GetHash:string; var a: array of byte; ...

Составить программу для решения ребуса : КОТ + КОТ = ТОК, где разным буквам соответствуют разные цифры, одинаковым - одинаковые - C++
Составить программу для решения ребуса : КОТ + КОТ = ТОК, где разным буквам соответствуют разные цифры, одинаковым - одинаковые. Заранее...

Составить алгоритм решения ребуса РАДАР = (Р + А + Д)4 (различные буквы обозначают различные цифры, старшая — не 0). - Turbo Pascal
27. Составить алгоритм решения ребуса РАДАР = (Р + А + Д)4 (различные буквы обозначают различные цифры, старшая — не 0).

Составить алгоритм решения ребуса РАДАР=(Р+А+Д)^4 (различные буквы означают различные цифры, старшая - не 0). - C#
я знаю что на С++ это должно быть так... void main () { char g ; CharToOem (&quot;\nРешение ребуса РАДАР=(Р+А+Д)^4\n&quot;, g); ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2012, 21:27
Привет! Вот еще темы с ответами:

Строка: найти все слова которые начинаюся с заданной буквы и поменять порядок букв на обратный - Delphi
дана строка (символы и пробелы) нужно найти все слова которые начинаюся с заданной буквы и поменять порядок букв на обратный с поиском...

Разбить входную строку на массив слов, содержащих либо только цифры, либо только буквы - C#
Доброго времени суток. Необходимо разбить входную строку на массив слов, содержащих либо только цифры, либо только буквенные символы. ...

дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка должна вводиться с клавиатуры. - C++
Будьте добры,помогите с решением задачи: дана строка, изображающая целое положительное число. Вывести сумму цифр этого числа. Строка...

Дана строка S. Найти количество различных букв в ней. Программа должна работать без учёта регистра букв - C#
Задачи на обработку строк . Условие вида &quot;дана строка&quot; означает, что пользователем вводится строка с клавиатуры. Осуществить ввод...


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

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

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