1 Востаннє редагувалося Skyzerks Synx (27.09.2014 01:22:01)

Тема: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

"Задано натуральное число. Разместите в памяти последовательно все его цифры,
используя указатели и операции над ними."

Вот код програми

iint a;
    cout<<"a = "; cin>>a;
    double b;
    int n = 10;
    while(b>-1)
    {
        b = a/10;
        double c = b%n;
        cout<<"\n"<<c;
        b=(a-c)/10;
    }
    system("pause");
    return 0;

я не використовув вказувачів, просто хочу зрозуміти чому дія пошуку остачі від ділення не працює. *WALL*
На саму змінну b пише:
"IntelliSense: выражение должно относиться к целочисленному типу или типу перечисления без области видимости"
Відповідно на %:
"error C2296: %: недопустимо, левый операнд имеет тип "double" "

private void life(int time_of_sleep=min, ...)
Cogito, ergo sum.

2 Востаннє редагувалося FakiNyan (27.09.2014 01:21:32)

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

Все, як і написано. Операцію % можна проводити тільки з цілочисленими типами, тобто, різного роду int.
double - це щось типу float'а, тобто число з плаваючою комою. І от самі уявіть, як має працювати операція %, котра має давати остачу від ділення, якщо ви ділете 1.115 на 2, наприклад. 
Тут же буде щось типу 0,5575, тобто при ділені числа з плаваючою комою - ніколи ніякої остачі від ділення бути не може.

тут спілкуються українці, про політику, і інше (серед них є програмісти, але дуже мало, тому не заходьте туди лише з питаннями про програмування)
https://discord.gg/Zk29v4P
Подякували: Skyzerks Synx, koala2

3

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

якщо використовувати цілий тип, результат той самий

private void life(int time_of_sleep=min, ...)
Cogito, ergo sum.

4

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

ні, все ж таки виправило

private void life(int time_of_sleep=min, ...)
Cogito, ergo sum.

5

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

Skyzerks Synx написав:

ні, все ж таки виправило

то у вас підкреслювало червоним той код, навіть, після заміни типу на int?

тут спілкуються українці, про політику, і інше (серед них є програмісти, але дуже мало, тому не заходьте туди лише з питаннями про програмування)
https://discord.gg/Zk29v4P

6

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

FakiNyan написав:
Skyzerks Synx написав:

ні, все ж таки виправило

то у вас підкреслювало червоним той код, навіть, після заміни типу на int?

я, напевно, не змінив тип деяких змінних що брали участь у дії

private void life(int time_of_sleep=min, ...)
Cogito, ergo sum.

7

Re: error C2296: %: недопустимо, левый операнд имеет тип "double" (С++)

Пане, будь ласка, не створюйте дві теми про одну задачу.