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

задача с++, при любых числах пишет true! - C++

Восстановить пароль Регистрация
 
SARIX
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 13
19.04.2012, 14:49     задача с++, при любых числах пишет true! #1
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<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
int main(void){
    int odin,des,sot,tis;
    int a;
    cout<<"Vvedit 4-oh znachne chislo";
    cin>>a;
    odin=a%10;
    des=a%100;
    sot=a%1000;
    tis=a%10000;
    cout<<odin<<endl;
    cout<<des<<endl;
    cout<<sot<<endl;
    cout<<tis<<endl;
    bool d=((odin+des)==(sot+tis));
    cout<<d;
    if (d=1) cout<<"true";
    if (d=0) cout<<"false";
    
    getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 14:49     задача с++, при любых числах пишет true!
Посмотрите здесь:

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. C++
C++ Глюк false = true == true;
C++ Пишет function does not take arguments при любых аргументах
C++ надо изменить его так чтобы он находил сумму любых введёных чисел и при вводе числа 0 программа завершалась
При написании значения более 10 пишет неверный балл, но все ровно его заносит в массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
19.04.2012, 15:27     задача с++, при любых числах пишет true! #2
SARIX,
C++
1
2
if (d == 1) cout<<"true";
if (d == 0) cout<<"false";
Rotfeder
35 / 0 / 1
Регистрация: 18.04.2012
Сообщений: 3
19.04.2012, 16:17     задача с++, при любых числах пишет true! #3
Чтобы по невнимательности не влипнуть на ошибку типа
if (d=1)

(а это частый случай)

рекомендуют писать так

if (1 == d)

(сначала константа, потом переменная)

если по ошибке вместо == напишешь =

if (1 = d)

компилятор ругнется
SARIX
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 13
19.04.2012, 16:17  [ТС]     задача с++, при любых числах пишет true! #4
так в операторе иф не должно быть =, всё равно , выдает true при любых заданных числах!
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
19.04.2012, 16:45     задача с++, при любых числах пишет true! #5
= знак присвоения
== знак сравнения

Добавлено через 1 минуту
в условии ты присваиваешь переменной какое то значение. Отсюда следует что false будет в том случае если в переменную каким то образом не запишется значение, иначе всегда будет true

Добавлено через 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
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
 
int main(void){
int odin,des,sot,tis;
int a;
cout<<"Vvedit 4-oh znachne chislo";
cin>>a;
odin=a%10;
des=((a%100) - odin )/10;
sot=((a%1000) - des)/100;
tis=((a%10000) - sot)/1000;
cout<<odin<<endl;
cout<<des<<endl;
cout<<sot<<endl;
cout<<tis<<endl;
bool d=((odin+des)==(sot+tis));
if(d)
    cout<<"true";
else
    cout<<"false";
 
getch();
}
Yandex
Объявления
19.04.2012, 16:45     задача с++, при любых числах пишет true!
Ответ Создать тему
Опции темы

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