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

Выражение - C++

Восстановить пароль Регистрация
 
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
07.06.2011, 13:56     Выражение #1
Подскажите пожалуйста!

Как можно расставить между числами знаки "+" и "-"??

Например!

На входе:

15 30 41

На выходе:

15+30-41

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2011, 13:56     Выражение
Посмотрите здесь:

Выражение C++
C++ выражение
Выражение на С++ C++
Объясните выражение C++
C++ Непонятное выражение
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
07.06.2011, 14:05     Выражение #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void fn(char* str) {
  for (bool b = true; *str; ++str) {
    if (*str == ' ') {
      if (b) {
        *str = '+';
        b = false;
      } else {
        *str = '-';
        return;
      }
    }
  }
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.06.2011, 14:08     Выражение #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <sstream>
#include <algorithm>
void rep(char &x){
    static int c=0;
    if (x==' ') x=(c++%2)?'-':'+';
}   
int main(){
    std::string str;
    std::getline(std::cin,str);
    for_each(str.begin(),str.end(),rep);
    std::cout << str;
    return 0;
}
Onishare
30 / 30 / 5
Регистрация: 07.05.2011
Сообщений: 50
07.06.2011, 14:11     Выражение #4
Данный код будет корректно работать на примере, который написан выше
числ-пробел-число-пробел-число.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
07.06.2011, 14:20  [ТС]     Выражение #5
И еще! помогите!! что бы вывело результат!

например!

10+45-20=35!)
Спасибо!)
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
07.06.2011, 14:42     Выражение #6
Можно так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
#include<conio.h>
main()
{
int a,b,c,s;
clrscr();
printf("Vvedite a,b,c: ");
scanf("%d %d %d",&a,&b,&c);
s=a+b-c;
printf("\nResultat: ");
printf("%d=%d+%d-%d",s,a,b,c);
getch();
}
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.06.2011, 14:50     Выражение #7
Для любого количества цифр и чисел будет так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <sstream>
#include <algorithm>
long int res,num,c;
void rep(char &x){
    if (x==' ') {x=(c++%2)?'-':'+';if (!res) res+=num;else res+=(c%2)?-num:num;num=0;}
        else    {num*=10; num+=x-48;}
}   
int main(){
    std::string str;
    std::getline(std::cin,str);
    for_each(str.begin(),str.end(),rep);
    std::cout << str << '=' << res+((c%2)?num:-num);
    return 0;
}
Получилось некрасиво и с глобальными переменными, зато кратко и работает=) Правда с отрицательными числами работать не будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2011, 14:58     Выражение
Еще ссылки по теме:

Подставить в заданное выражение знаки +,-,*,/ так, чтобы выражение было истинным C++
C++ Вывести значение логического выражения, заданного в виде строки S. Выражение определяется следующим образом («T» — True, «F» — False): <выражение> :
λ-выражение C++

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

Или воспользуйтесь поиском по форуму:
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
07.06.2011, 14:58  [ТС]     Выражение #8
Спасибо, выручили!!!
Yandex
Объявления
07.06.2011, 14:58     Выражение
Ответ Создать тему
Опции темы

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