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

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

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

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

10.05.2012, 21:27. Просмотров 701. Ответов 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). С клавиатуры вводятся различные буквы.должна появится строка из букв
Посмотрите здесь:

Даны два массива: А [ M ] и B [ N ] ( M и N вводятся с клавиатуры) - C++
5. Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в котором нужно...

Удалить часть текста между словами,которые вводятся с клавиатуры - C++
Удалить часть текста между словами,которые вводятся с клавиатуры. Собственно,вот и задание.Поможете?

выделить часть текста между словами которые вводятся с клавиатуры - C++
вот сообственно задание 8. Виділити частину тексту між словами, що вводяться з клавіатури. (выделить часть текста между словами...

Вычислить среднее арифметическое последовательности чисел, которые вводятся с клавиатуры - C++
1. Вычислить среднее арифметическое последовательность чисел, которые вводятся с клавиатуры. Завершить ввод числом 0

Строка: Написать программу, вычисляющую сумму положительных чисел, которые вводятся в клавиатуре. - C++
Написать программу, вычисляющую сумму положительных чисел, которое вводятся в клавиатуре. А отрицательные числа не считать и вводит...

Даны 3 числа A,B,C, которые вводятся с клавы. Если число А чётное то вывести сумму чисел А,В,С, иначе их произ - C++
Итак: Даны 3 числа A,B,C, которые вводятся с клавы. Если число А чётное то вывести сумму чисел А,В,С, иначе их произведение.

Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc. - C++
Вычислить сумму кодов всех символов, которые в цикле вводятся с клавиатуры до нажатия на клавишу Esc.

Перейти из левого нижнего в правый верхний угол массива, двигаясь вверх либо вбок, суммируя элементы через которые идем. Сумма должна быть минимальной - C++
Помогите составить алгоритм реализации такой программы. Например, есть массив: 1 2 5 7 9 4 6 8 2 1 3 9 7 5 2 Cчитаем сумму для...

Программа должна считывать английский текст и выводить на экран слова, которые начинаются на гласные буквы - C++
Привет всем)) Вот такая проблема, прога должна считывать английский текст и выводить на экран слова, которые начинаются на гласные...

20 цифр и букв, выводятся 2 столбца, в одном буквы, в другом цифры - C++
20 цифр и букв, выводятся 2 столбца, в одном буквы, в другом цифры код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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