1 Востаннє редагувалося Skyzerks Synx (27.09.2014 00: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" "

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

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

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

Подякували: Skyzerks Synx, koala2

3

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

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

4

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

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

5

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

Skyzerks Synx написав:

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

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

6

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

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

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

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

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

7

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

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