Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
1

символы (с++)

27.11.2010, 19:53. Показов 3154. Ответов 30

Author24 — интернет-сервис помощи студентам
Здравствуйте!!! Напишите пожалуйста простенькую программу которая суммирует два числа но с помощья char или string!!!!!!!!!

Добавлено через 2 минуты
но без функции atoi или atoll =)))))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2010, 19:53
Ответы с готовыми решениями:

Вывести все символы английского алфавита, чередуя строчные и прописные символы
Помогите решить задачу по программированию. Используя операторы цикла, вывести на экран все...

Широкие символы wchar_t wstring не хотят принимать русские символы
Собственно вопрос в шапке, вот примеры: std::wstring str = L"блин комом"; и такое: wchar_t...

Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитном
Привет, форумчане! Дано задание: >Даны строки A и B. Если в A есть символы из B и в B нет...

Вывести на экран в первой строке нечетные символы, во второй четные символы исходной строки
Помогите написать 3 программы. (на С или С++) 1. Вывести на экран в первой строке нечетные...

30
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
27.11.2010, 20:10 2
Просто складываем и вычитаем из суммы 96

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
char ch1 = ' ', ch2 = ' ';
while(1){
cin >> ch1; cin >> ch2;
cout << (ch1 + ch2)-96;
}
 
    system("pause");
}
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:14  [ТС] 3
Хм, я идею твою понял))) но если усложнить задачу!!!! примерно что бы он высчитывал такой тест!!!
ввод:
111111111111111111111 222222222222222222222
вывод:
333333333333333333333
а?
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 20:15 4
точно так же, только через массивы.
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:16  [ТС] 5
не покажешь???
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 20:25 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
char ch1[10] ={0}, ch2[10] ={0};
while(1){
cin >> ch1; cin >> ch2;
for(int i=0;i<strlen(ch1);i++)
cout << (ch1[i] + ch2[i])-96;
}
}
самое простое, тут нет обработки ситуации, если ch1[i] + ch2[i] больше 9 (всмысле 8+7=15, т.е. пишем 5, а 1 уходит на следующий разряд)
2
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:30  [ТС] 7
Kastaneda, у тебя классная идея на счет перехода на следующий разряд!!!! Но он же ведь не берет мой тест(((
ввод:
111111111111111111111 222222222222222222222
вывод:
333333333333333333333

Добавлено через 1 минуту
ой я блиииииииииииииин!!! я понял свою ошибку!!!!!! огромное спасибо!!!!!!
0
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:35  [ТС] 8
Аааа!!!! на этом проблемы не все. А если так?!
ввод:
123456788888 222222222
вывод:
123679011110
что нужно изменить????
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 20:40 9
Я ж говорю, тот код, это самое простое, так для примера, как с массивами работать. Он даже числа разной длины не понимает.
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:41  [ТС] 10
а что нужно сделать что бы понимал???))))
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 20:44 11
Цитата Сообщение от jambas92 Посмотреть сообщение
что нужно изменить????
Написать нормальную ф-цию, с учетом разной длины чисел, переходом 1 в следующий разряд, так же учесть унарный минус. (вроде ничего не пропустил))

Добавлено через 1 минуту
jambas92, попробуй сам, если что - ошибки исправим)
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:50  [ТС] 12
хорошо!!!!!!!!!!

Добавлено через 4 минуты
а как вам так???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
 
    char a[100];
    char b[100];
 
    cin >> a >> b;
 
    int x=atoi(a);
    int y=atoi(b);
 
    cout << x+y;
 
    return 0;
}
но эта программа не высчитывает выше 10^10 степени((( как это обойти????
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 20:57 13
Цитата Сообщение от jambas92 Посмотреть сообщение
не высчитывает выше 10^10 степени(((
не может быть! Она не считает числа больше 2147483647 (максимальное значение int при int - 4 байта)
как это обойти????
массивы!
P.S.есть специальные библиотеки для работы с большеми числами, но думаю вам это не надо.

Добавлено через 1 минуту
Цитата Сообщение от jambas92 Посмотреть сообщение
а как вам так???
а как же <<"но без функции atoi или atoll =">>
0
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 20:58  [ТС] 14
массивы??? а я как??? а специальной библиотекой я сегодня весь день парился... ничего там интересного. Дучше самому решить! А как это до делать??? Подтолкните!

Добавлено через 56 секунд
без фуекции atoi или atoll потому что я из начально знал что он не пренимает большие числа))))
1
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,113
Записей в блоге: 2
27.11.2010, 21:01 15
Цитата Сообщение от jambas92 Посмотреть сообщение
массивы??? а я как???
а какой смысл в этих массивах, если в итоге все делается через atoi() ?

Цитата Сообщение от jambas92 Посмотреть сообщение
специальной библиотекой я сегодня весь день парился... ничего там интересного
несомневаюсь)))

Цитата Сообщение от jambas92 Посмотреть сообщение
Подтолкните!
написали же пример, как работать с массивами. Что еще непонятно?
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
27.11.2010, 22:01 16
Цитата Сообщение от Kastaneda
несомневаюсь)))
А я вот сомневаюсь)))
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 22:16  [ТС] 17
silent_1991, тогда докажи обратное!!! попробуй ее реши!!!
P/s: пытаюсь типа на слабо ее решить, интересно получится...
1
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
28.11.2010, 01:06  [ТС] 18
ну вот я почти решил!!! идея такая!!! сравниваю два символьных массива, если одна из них больше (длиннее), то я меньшии массив до его содержимого забиваю нулями, что бы два массива были одинаковы по велечине, а дальше как показал Kastaneda, но не получается, исправьте...

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
#include <iostream>
 
using namespace std;
 
int main()
{
    char a[100]={0};
    char b[100]={0};
    char c[100]={0};
    char d[100]={0};
 
    int h, g;
 
    cin >> a >> b;
 
    int x=strlen(a);
    int y=strlen(b);
 
    if (x-y>0)
    {
        for (int i=x-y; i<x; i++)
        {
            for (int j=0; j<y; j++)
            {
                d[i]=b[j];
            }
        }
        for (int i=0; i<x; i++)
        {
            cout << (a[i]+d[i]) - 96;
        }
    }
    if (y-x>0)
    {
        for (int i=y-x; i<y; i++)
        {
            for (int j=0; j<x; j++)
            {
                c[i]=a[j];
            }
        }
        for (int i=0; i<y; i++)
        {
            cout << (c[i]+b[i]) - 96;
        }
    }
 
    if (x-y==0)
    {
        for (int i=0; i<x; i++)
        {
            cout << (a[i]+b[i])-96;
        }
    }
 
    return 0;
}
Добавлено через 36 минут
кстати вот этот код работает не правильно... проверь так.
ввод: 66 66
выход должен быть:132, а выводит 1212 ((((

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main()
{
char ch1[10] ={0}, ch2[10] ={0};
while(1){
cin >> ch1; cin >> ch2;
for(int i=0;i<strlen(ch1);i++)
cout << (ch1[i] + ch2[i])-96;
}
}
1
MiThEoN
466 / 323 / 42
Регистрация: 31.10.2009
Сообщений: 546
Записей в блоге: 2
28.11.2010, 04:04 19
Лучший ответ Сообщение было отмечено как решение

Решение

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
#include <iostream>
#define k 10
using namespace std;
 
int main()
{
    char ch1[k] ={0}, ch2[k] ={0}, ch3[k+1] ={0};
    int chlen1,chlen2;
    int i=0;
    while(1)
    {
        cin >> ch1; cin >> ch2;
        chlen1=strlen(ch1);
        chlen2=strlen(ch2);
        for(i=0;i<k-1;i++)
        {
            (i<chlen1)?ch1[k-2-i]=ch1[chlen1-1-i]:ch1[k-2-i]='0';
            (i<chlen2)?ch2[k-2-i]=ch2[chlen2-1-i]:ch2[k-2-i]='0';
        }
        int n=0;
        i=0;
        while(n==0)
        {
            n=(ch1[i] + ch2[i])-96;
            i++;
        }
        if((int(n/10))!=0)
            cout<<(int(n/10));
        (n-10>0)?n-=10:n=n;
        for(i=i;i<strlen(ch1);i++)
        {
            n*=10;
            n+=(int((ch1[i] + ch2[i])-96));
            cout<<(int(n/10));
            n-=(int((n/10)*10));
        }
        cout<<(n-(int(n/10))*10);
    }
}
3
59 / 58 / 16
Регистрация: 18.11.2010
Сообщений: 315
28.11.2010, 08:16  [ТС] 20
VASSUV, твоя программа считывает хорошо, но на таком тесте он не проходит(((
ввод:123456788888 222222222
должен выводить: 123679011110, а у тебя выводит 1236781011110!!!!
он у тебя вместо 9 его расписывает как 8 и 1...
и я поменял
C++
1
#define k 101
Добавлено через 3 минуты
сам не пойму в чем ошибка... как будта бы все правильно...
2
28.11.2010, 08:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2010, 08:16
Помогаю со студенческими работами здесь

не могу понять задачку. Даны натуральное число n и символы s1, s2,., sn. Получить символы, принадлежащие последовательности s1, s2,., sn, которые
Даны натуральное число n и символы s1, s2,..., sn. Получить символы, принадлежащие...

Создать очередь, содержащую любые символы. Удалить из очереди все символы, не являющиеся буквами или цифрами
Используя динамические структуры, реализовать следующие задания. Вспомо*гательные функции должны...

Поменять символы одного массива на символы из другого
Нужно поменять символы одного массива на символы из другого. К примеру: дано слово programming,...

Изменить символы из файла на символы указанные в программе
Всем привет! Появился вопросик - как сделать так, чтобы определенные символы из файла менялись на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru