Помогите с решением СИ

введите сюда описание изображения

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int d,c=5;  /*объявление целых переменных*/
    float a=5.0,b;  /*объявление нецелых переменных */
    printf("b = "); /*вывод в консоль текста */
    scanf("%f", &b);    /*ввод с клавитуры нецелого числа*/
    printf("d = "); /*вывод в консоль текста*/
    scanf("%d", &d);    /*ввод целего числа с клавиатуры*/
    a+=b-2; /*операция вычисления*/
    printf("a = %f\n",a); /*вывод в консоль результата вычисления*/
    d+=++c-a;   /*операция вычисления*/
    printf("d = %d\n", d);  /*вывод в консоль результата вычисления*/
    a*=c--; /*операция вычисления*/
    printf("a = %f\n",a );    /*вывод в консоль результата вычисления*/
    d *= (c = c/2) + --b + (a = a/10);  /*операция вычисления*/
    printf("d = (%d/2) + %f - 1 + (%f/10)\n", c, b, a); /*вывод в консоль результата вычисления*/
    printf("RES = %f, %f, %d, %d\n", a,b,c,d);  /*вывод в консоль окончательного результата вычисления*/
    return 0;   /*вывод в консоль кода "0", который означает успешное завершение программы*/
}
    
    

Ответы (1 шт):

Автор решения: Harry

Нет, не совсем так. Например, вы пишете

printf("d = (%d/2) + %f - 1 + (%f/10)....

Но ведь к этому моменту значения c или там a совсем не те, которые вы делите пополам или на 10.

Да и не просят от вас этого, а просят выводить просто значения всех переменных, и почаще.

Т.е. я бы делал вот так как-то:

#include <stdio.h>

int main()
{
    int   c = 5, d;
    float a = 5, b;

    printf("float b = ");
    scanf("%f",&b);
    printf("int   d = ");
    scanf("%d",&d);

    printf("a = %7.2f, b = %7.2f, c = %3d, d = %3d\n",a,b,c,d);
    a += b-2;
    printf("a = %7.2f, b = %7.2f, c = %3d, d = %3d\n",a,b,c,d);
    d += ++c - a;
    printf("a = %7.2f, b = %7.2f, c = %3d, d = %3d\n",a,b,c,d);
    a *= c--;
    printf("a = %7.2f, b = %7.2f, c = %3d, d = %3d\n",a,b,c,d);
    d *= (c/=2) + (b-=1) + (a/=10);
    printf("a = %7.2f, b = %7.2f, c = %3d, d = %3d\n",a,b,c,d);
}
→ Ссылка