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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
27.11.2010, 19:53     символы (с++) #1
Здравствуйте!!! Напишите пожалуйста простенькую программу которая суммирует два числа но с помощья char или string!!!!!!!!!

Добавлено через 2 минуты
но без функции atoi или atoll =)))))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2010, 19:53     символы (с++)
Посмотрите здесь:

C++ Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.
C++ Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D
C++ Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2.
Алфавит. Символы операций. Специальные символы C++
C++ Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.11.2010, 09:32     символы (с++) #21

Не по теме:

сомневаюсь/несомневаюсь
silent_1991, это был сарказм)))



Добавлено через 59 секунд
jambas92, если сегодня время будет - напишу.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
28.11.2010, 11:42
  #22

Не по теме:

Kastaneda, ну надо же было дать пищу для размышлений ТСу противоречивым сообщением))) Но в ответ я получил детское "Докажи - реши" да ещё и тучу восклицательных знаков

VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.11.2010, 14:28     символы (с++) #23
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#define k 100
using namespace std;
 
int main()
{
    char ch1[k] ={0}, ch2[k] ={0};
    int ch3[k+1];
    int chlen1,chlen2;
    int i=0,m;
    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,l;
        i=k-2;
        ch3[0]=(ch1[i] + ch2[i])-96;
        (ch3[0]/10>=1)?n=1:n=0;
        if(n==1)  ch3[0]-=10;
        (chlen1>chlen2)?m=chlen1:m=chlen2;
        for(i=k-3;i>=k-m-2;i--)
        {
            l=k-i-2;
            ch3[l]=(ch1[i] + ch2[i])-96;
            (n==1)?ch3[l]++:n=0;
            (ch3[l]/10>=1)?n=1:n=0;
            if(ch3[l]/10>=1 && l<=m-2)  ch3[l]-=10;
        }
        for(i=m-1;i>=0;i--)
            cout<<ch3[i];
    }
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.11.2010, 14:45     символы (с++) #24
Цитата Сообщение от VASSUV Посмотреть сообщение
int n=0,l;
??? Это специально?

Я тоже написал, сейчас "красоту" наведу, выложу)
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
28.11.2010, 14:46  [ТС]     символы (с++) #25
[B]VASSUV[/B, немного не правильно считает если ввести:
5 5
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.11.2010, 15:00     символы (с++) #26
Сообщение было отмечено автором темы, экспертом или модератором как ответ
перед выводом дабавить такое условие надо
C++
1
2
3
if(l==1 && ch3[l]==1) m++;
for(i=m-1;i>=0;i--)
   cout<<ch3[i];
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
28.11.2010, 15:05  [ТС]     символы (с++) #27
Аааа, а я вместо м++ вставлял break... а так работает теперь без ошибок
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.11.2010, 15:28     символы (с++) #28
Цитата Сообщение от Kastaneda Посмотреть сообщение
Я тоже написал, сейчас "красоту" наведу, выложу)
выкладывай!!!! хочется аосмотреть на новый вариант решения!!!
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.11.2010, 16:10     символы (с++) #29

Не по теме:

Цитата Сообщение от VASSUV Посмотреть сообщение
выкладывай!!!!
последнюю ф-цию дописываю))) просто мнооого раз перекомпилировать приходится)



Добавлено через 10 минут
А, что-то уже лень дописывать) Хотел сделать увеличение размера экрана консоли, если результат в одну строчку не влазиет, но таак неоохото)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream> 
#include <windows.h>
using namespace std;
char* result(char*,char*);
void print_result(char*);
int main() {
    char ar1[80],ar2[80];
    cout<<"Enter first number: ";
    cin>>ar1;
    cout<<"Enter second number: ";
    cin>>ar2;
    print_result(result(ar1,ar2));//мы легких путей не ищем)))
    cout<<endl;
    system("pause");
    return 0;
}
char* result(char*ar1,char*ar2){
    size_t min,max;
    char *armin,*armax;
    bool flag=false;
    if(strlen(ar1)>strlen(ar2)){
        min=strlen(ar2);
        max=strlen(ar1);
        armin=ar2;
        armax=ar1;
    }
    else{
        min=strlen(ar1);
        max=strlen(ar2);
        armax=ar2;
        armin=ar1;
    }
    for(int i=(int)max-1,j=(int)min-1;i>=0;i--,j--){
        
        if (flag&&(armax[i]<'9')){
            ++armax[i];
            flag=false;
        }    
        else if(flag) 
            armax[i]='0';
        if(j>=0){
        if((armax[i]-'0') + (armin[j]-'0')>9){
        armax[i]+= armin[j]-'0'-10;
        flag=true;
 }          
        else armax[i]+=armin[j]-'0';    
        }
 } 
    return armax;
}
void print_result(char* result){
    CONSOLE_SCREEN_BUFFER_INFO CSBI;
    int len=strlen(result)+6;
    if(len<20)
        len=21;
    char* a=new char[len];
    for(int i=0;i<len-1;i++){
        if(i==0)a[i]=(char)0xC9;
        else if(i==len-2)a[i]=(char)0xBB;
        else if(i==(len-2)/2-2){
            strcpy(&a[i],"Result");
            i+=5;
        }
        else a[i]=(char)0xCD;
    }
    a[len-1]='\0';
    HANDLE hStd=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hStd,BACKGROUND_RED|FOREGROUND_INTENSITY|FOREGROUND_BLUE |BACKGROUND_INTENSITY);
    GetConsoleScreenBufferInfo(hStd,&CSBI);
    COORD CD;
    /*if(CSBI.dwSize.X<len-1){ Вот это хотел реализовать.
        reset_size_console(len);
        GetConsoleScreenBufferInfo(hStd,&CSBI);
    }*/
    CD.X=(CSBI.dwSize.X-len)/2;
    CD.Y=8;
    SetConsoleCursorPosition(hStd,CD);
    cout<<a;
    for(int i=0;i<len-1;i++){
        if((i==0)||(i==len-2))a[i]=(char)0xBA;
        else a[i]=' ';
    }
    for(int i=0;i<3;i++){
        CD.Y++;
        SetConsoleCursorPosition(hStd,CD);
        cout<<a;
    }
    for(int i=0;i<len-1;i++){
        if(i==0)a[i]=(char)0xC8;
        else if(i==len-2)a[i]=(char)0xBC;
        else a[i]=(char)0xCD;
    }
    CD.Y++;
    SetConsoleCursorPosition(hStd,CD);
    cout<<a;
    CD.X+=(strlen(a)-strlen(result))/2;
    CD.Y-=2;
    SetConsoleCursorPosition(hStd,CD);
    cout<<result;
    CD.X=0;
    CD.Y=20;
    SetConsoleCursorPosition(hStd,CD);
    SetConsoleTextAttribute(hStd,0x07);
 
}
Добавлено через 3 минуты

Не по теме:

раньше на АСМе подобные вещи только так писал, а на С/С++ еще не пробовал, вот, решил сделать. Кто компилил, тот поймет о чем речь))

VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.11.2010, 16:21     символы (с++) #30
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Что то у тебя не так!
Миниатюры
символы (с++)  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 16:34     символы (с++)
Еще ссылки по теме:

C++ не могу понять задачку. Даны натуральное число n и символы s1, s2,., sn. Получить символы, принадлежащие последовательности s1, s2,., sn, которые
C++ Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитном
Задана строка, символы которой могут повторяться. Нужно удалить все символы строки с помощью наименьшего количества вычеркиваний C++

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

Или воспользуйтесь поиском по форуму:
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.11.2010, 16:34     символы (с++) #31
Это частный случай (читай "особенность программы")) , сейчас исправлю.

Добавлено через 7 минут
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
char* result(char*ar1,char*ar2){
    size_t min,max;
    char *armin,*armax;
    bool flag=false;
    if(strlen(ar1)>strlen(ar2)){
        min=strlen(ar2);
        max=strlen(ar1);
        armin=ar2;
        armax=ar1;
    }
    else{
        min=strlen(ar1);
        max=strlen(ar2);
        armax=ar2;
        armin=ar1;
    }
    for(int i=(int)max-1,j=(int)min-1;i>=0;i--,j--){
        
        if (flag&&(armax[i]<'9')){
            ++armax[i];
            flag=false;
        }    
        else if(flag) 
            armax[i]='0';
        if(j>=0){
        if((armax[i]-'0') + (armin[j]-'0')>9){
        armax[i]+= armin[j]-'0'-10;
        flag=true;
 }          
        else armax[i]+=armin[j]-'0';    
        }
 } 
    if(flag){
        for(int i=strlen(armax);i>0;i--)
            armax[i+1]=armax[i];
        armax[0]='1';
    }
    return armax;
}
Yandex
Объявления
28.11.2010, 16:34     символы (с++)
Ответ Создать тему

Метки
сумма строк(чисел)
Опции темы

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