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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
xen0n
0 / 0 / 0
Регистрация: 25.07.2011
Сообщений: 7
#1

"warning C4804" при x <= 1 - C++

26.07.2011, 12:37. Просмотров 1424. Ответов 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
25
#include <iostream>;
using namespace std;
 
int main( void )
{
    int x; //исходное число
    int z; //ответ
    cin>>x;
 
    if ( x >= 1 || x <= 100 || x % 3 = 0) { // от 1 до 100 и делится без остатка на 3
        z=x*2;
        cout<<z;
    }
    else {
        if ( x >= 1 || x <= 100 ) { //от 1 до 100, но не делится на 3 без остатка
        z=x*3;
        cout<<z;
        }
 
        else {
            z=x*(x % 100); //умножает x на остаток от деления x на 100
                cout<<z;
        }
         }
}
В программировании краб, пользуюсь visual c++ 10. Лог:
1>------ Build started: Project: if, Configuration: Debug Win32 ------
1> main.cpp
1>c:\users\xen0n\documents\visual studio 2010\projects\if\if\main.cpp(1): warning C4067: unexpected tokens following preprocessor directive - expected a newline
1>c:\users\xen0n\documents\visual studio 2010\projects\if\if\main.cpp(10): warning C4804: '<=' : unsafe use of type 'bool' in operation
1>c:\users\xen0n\documents\visual studio 2010\projects\if\if\main.cpp(10): error C2106: '=' : left operand must be l-value
1>c:\users\xen0n\documents\visual studio 2010\projects\if\if\main.cpp(15): warning C4804: '<=' : unsafe use of type 'bool' in operation
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
кроме того программа подчеркивает красненькой волнистой линией x который сразу после первого if, если навести курсор пишет "error: expression must be a modifiable value". Если поменять местами х и 1 (и знак соответственно), то подчеркнута будет уже 1.

Текст задачи:
Напишите код, умножающий исходное число на 2, если оно принадлежит интервалу от 1 до 100 (включительно) и делится нацело на 3; в противном случае умножает на три, если число принадлежит интервалу от 1 до 100, но не делится нацело на три; и наконец, умножает число на остаток от его деления на 100, если число не принадлежит интервалу от 1 до 100.(Подсказка: используйте вложенные операторы if.)
Поиск юзал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 12:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "warning C4804" при x <= 1 (C++):

Warning C4244: return: преобразование "double" в "float", возможна потеря данных - C++
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244: return: преобразование &quot;double&quot; в &quot;float&quot;,...

Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных - C++
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование &quot;__int64&quot; в &quot;int&quot;, возможна...

warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Вот код. Работало, теперь не работает. Не пойму в чём дело. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Возникла проблема Решаю лабу, написал код, выдает ошибку (warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря данных) ...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc" - C++
Всем привет! помогите мне понять в чём дело. написал программу: #include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;iostream&gt; #include...

6
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
26.07.2011, 12:38 #2
C++
1
if ( x >= 1 || x <= 100 || x % 3 = 0)
А должно быть

C++
1
if ( x >= 1 || x <= 100 || x % 3 == 0)
После iostream ; не нужна

Ну и операции >= <= оберните в скобочки. Итого.

C++
1
if ( (x >= 1) || (x <= 100) || ((x % 3) == 0))
И в 15 строчке аналогично со скобками.
1
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
26.07.2011, 12:39 #3
C++
1
x % 3 = 0
==

опоздал =(
0
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
26.07.2011, 12:42 #4
C++
1
]( x >= 1 || x <= 100 || x % 3 == 0)
Вы сделали присваивание нуля

Не по теме:

Во время.. кхм..

0
xen0n
0 / 0 / 0
Регистрация: 25.07.2011
Сообщений: 7
26.07.2011, 13:19  [ТС] #5
спасибо, компилируется, но вот еще вопрос: где я ошибся?
не правильные ответы выдает. если x число от 1 до 100 и делится на 3, то умножить его на два - все верно. но если ввести число от 1 до 100 которое НЕ делится на 3, то по идее оно должно умножиться 3, но почему-то оно все равно умножается на два, а если ввести число больше 100, то оно все равно просто умножает на два.

простов книге задание это дали в теме, в которой вобще не рассказывали ни о больше, ни о меньше, ни о =, ни даже о самом if...

собственно нынешний код:
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
#include <iostream>
using namespace std;
 
int main( void )
{
    int x; //исходное число
    int z; //ответ 
    cin>>x;
 
    if ( (x >= 1) || (x <= 100) || ( ( x % 3 ) == 0) ) { // от 1 до 100 и делится без остатка на 3
        z=x*2;
        cout<<z;
    }
    else {
        if ( (x >= 1) || (x <= 100) ) { //от 1 до 100, но не делится на 3 без остатка
        z=x*3;
        cout<<z;
        }
 
        else {
            z=x*(x % 100); //умножает x на остаток от деления x на 100
                cout<<z;
        }
         }
    
 
}
0
grizlik78
Эксперт С++
1964 / 1457 / 119
Регистрация: 29.05.2011
Сообщений: 3,016
26.07.2011, 13:22 #6
Цитата Сообщение от xen0n Посмотреть сообщение
не правильные ответы выдает. если x число от 1 до 100 и делится на 3, то
Все || заменить на &&
1
xen0n
0 / 0 / 0
Регистрация: 25.07.2011
Сообщений: 7
26.07.2011, 13:39  [ТС] #7
спасибо, помогло
0
26.07.2011, 13:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2011, 13:39
Привет! Вот еще темы с ответами:

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" - C++
Вот функция для удаления столбца: #pragma once #include &lt;iostream&gt; using namespace std; int **DeleteIndexCol(int **ar,int s1,int...

Необработанное исключение в "0x778e15de" в "dir-3.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000" - C++
#include &lt;windows.h&gt; #include &lt;d3d9.h&gt; LRESULT __stdcall WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); struct...

Необработанное исключение в "0x775e15de" в "laba3.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdf9". - C++
вылезает ошибка Необработанное исключение в &quot;0x775e15de&quot; в &quot;laba3.exe&quot;: 0xC0000005: Нарушение прав доступа при чтении &quot;0xfdfdfdf9&quot;. ...

Необработанное исключение в "0x00412b4a" в "kursovik.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000004". - C++
Программа компилируется нормально но потом на строчке MoveToEx(hdc,Mas.a]-&gt;x*20,Mas.a]-&gt;y*20,0); выдаёт ошибку Помогите пожалуйста...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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