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

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

Войти
Регистрация
Восстановить пароль
 
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

Операции с числами(правильно или нет) - C++

15.10.2012, 18:09. Просмотров 404. Ответов 10
Метки нет (Все метки)

Подскажите почему не выводит "wrong", если я ввожу 5++5(хотя в условии я задал что делать если будет подобное выражение)?
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
#include <stdio.h>
#include <math.h>
 
int main()
{
    int i;
    char s[100];
    printf("enter smth like it: 2+2\n");
    scanf("%s", &s); //вводим нашу строку с числами и знаками +-*/ и скобками
 
    for(i=0;i<4;i++) {
        if(s[i]=='+'|| s[i]=='-'||s[i]=='*'||s[i]=='/') { //первый член
            if(s[i]++!='+'||s[i]++!='-'||s[i]++!='*'||s[i]++!='/') { //следующий за ним член
                printf("right\n");
            }
            else {
                printf("wrong\n");
            }
        }
}
 
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 18:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операции с числами(правильно или нет) (C++):

Правильно ли я понимаю ссылки и указатели. Работу с ними. Я сам прокомментировал код. Скажите правильно или нет. - C++
#pragma once namespace Casper { class Cat { private: unsigned int age; float weight;

Посмотрите правильно или нет. - C++
Четырехугольник ABCD задан координатами своих вершин на плоскости: A(Xa,Ya),B(Xb,Yb),C(Xc,Yc) , D(Xd,Yd).Проверить являетса ли он выпуклым....

Цикл: правильно или нет? - C++
Знающие люди, подскажите пожалуйста... Есть такая задачка: http://pic.ipicture.ru/uploads/090209/FqJj1Wz56M.jpg необходимо вычислить...

Написал программу, не могу понять правильно или нет - C++
Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int по формуле: S=a1*a2+a2*a3+a3*a4+. . . . . ...

Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ с++ - C++
Помогите написать задачку по с++ &quot;Проверить, правильно ли в текст входят круглые скобки. Ответ ДА или НЕТ&quot; не понимаю, программирования в...

Подскажите правильно, или нет. Ввести с клавиатуры вещественную матрицу размерностью 5х5, определить - C++
Ввести с клавиатуры вещественную матрицу размерностью 5х5, определить: 1) Сумма отрицательных элементов в парных строках; 2)...

10
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
15.10.2012, 18:26 #2
В чём идея программы? Я не понял, какого результаты ты ходишь добиться.
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
15.10.2012, 18:32  [ТС] #3
Цитата Сообщение от David Sylva Посмотреть сообщение
В чём идея программы? Я не понял, какого результаты ты ходишь добиться.
Я поэтапно реализую программу, которая бы выводила правильно или нет мы ввели числа. Например 7+7 - это правильно, а вот 7++7 - это не правильно. На этапе 7++7 я застрял, вот и прошу помощи
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
15.10.2012, 18:44 #4
Ты хочешь, делать проверку на цифры или проверку на корректность выражения? Если на цифры то есть функция http://www.cplusplus.com/reference/c...ctype/isdigit/ а если на правильность выражения, то мне кажется ты делаешь неправильно.
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
15.10.2012, 18:49  [ТС] #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Ты хочешь, делать проверку на цифры или проверку на корректность выражения? Если на цифры то есть функция http://www.cplusplus.com/reference/c...ctype/isdigit/ а если на правильность выражения, то мне кажется ты делаешь неправильно.
Я делаю на правильность выражения. Почему не правильно? (свой пример приведите)
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
15.10.2012, 19:06 #6
Может не лучший пример, но можно так
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
#include <iostream>
 
int main() 
{ 
    char buf[10];  
    int count = 0; 
    int i = 0;
    std::cout << "Inter a expression " << std::endl; 
    std::cin >> buf; 
 
        if(isdigit(buf[i])) 
        {   
            count++;
            if(buf[i+1] == '+' ||  buf[i+1] == '-') 
                count++; 
            if(isdigit(buf[i+2])) 
                count++; 
        } 
        if( count == 3) 
            std::cout << "Right " << std::endl; 
        else 
            std::cout <<"Wrong " << std::endl; 
 
}
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
15.10.2012, 19:25  [ТС] #7
Правильно ли я вообще провожу сравнение:
C
1
if(s[i]++!='+'||s[i]++!='-'||s[i]++!='*'||s[i]++!='/')
?
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
15.10.2012, 19:31 #8
Нет. Если так как хочешь ты, то можно так
увеличить счётчик i++ и сравнивать s[i] == '+' || s[i] == '-'
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
15.10.2012, 19:43  [ТС] #9
Цитата Сообщение от David Sylva Посмотреть сообщение
Нет. Если так как хочешь ты, то можно так
увеличить счётчик i++ и сравнивать s[i] == '+' || s[i] == '-'
Зачем мне увеличивать счётчик когда вот так вот должно работать(немного исправил первоначальный вариант):
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 <stdio.h>
#include <math.h>
 
int main()
{
    int i;
    char s[100];
    printf("enter smth like it: 2+2\n");
    scanf("%s", &s); //вводим нашу строку с числами и знаками +-*/ и скобками
 
    for(i=0;i<4;i++) {
        if(s[i]=='+'|| s[i]=='-'||s[i]=='*'||s[i]=='/') { //первый член
        s[i]++;
            if(s[i]!='+'||s[i]!='-'||s[i]!='*'||s[i]!='/') { //следующий за ним член
                printf("right\n");
            }
            else {
                printf("wrong\n");
            }
         s[i]--;
        }
}
 
 
    return 0;
}
Так ведь тоже должно работать. Допустим у нас выражение 2++2 и наш счётчик равен 1(стоим на первом плюсике). Наше s[1] в данный момент это +. Так почему не работает если я делаю s[1]++(должно же получиться s[2])
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
15.10.2012, 19:48 #10
C++
1
2
3
4
5
6
7
8
9
#include <iostream> 
 
int main() 
{   
    int array[5] = { 1, 2, 3, 4, 5 }; 
    int i = 0;
    std::cout << array[i]++ << std::endl; // твой вариант
    std::cout << array[i++] << std::endl;
}
1
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
15.10.2012, 19:52  [ТС] #11
Цитата Сообщение от David Sylva Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
#include <iostream> 
 
int main() 
{   
    int array[5] = { 1, 2, 3, 4, 5 }; 
    int i = 0;
    std::cout << array[i]++ << std::endl; // твой вариант
    std::cout << array[i++] << std::endl;
}
Понял в чём была вся загвоздка. Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 19:52
Привет! Вот еще темы с ответами:

Операции с числами - C++
Даны целое число k(1&lt;k&lt;180) и последовательность цифр 10111213...9899, в которой выписаны подряд все двузначные числа. Определить: ...

Операции с бошими числами - C++
Я ещё не залез с головой в тему больших чисел предварительно хочу проконсультироваться сколько(навскид) у пк займёт времени извлечения...

Операции над комплексными числами - C++
В данной программе нужно создать дружескую функцию класса Komplex. Таким образом чтобы читалась строка с5=2+с1. Как это правильно сделать??...

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


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
15.10.2012, 19:52
Ответ Создать тему
Опции темы

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