По личной просьбе.
#include "stdafx.h"
"math.h"
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
Каждый
#include ставится на отдельной строчке, и включает один заголовочный файл. Конкретный набор заголовочных файлов надо подбирать с учётом того, что используется в программе. В данной программе используется ввод-вывод и математика - отсюда хэдеры (заголовочные файлы)
"stdio.h" и
"math.h".
"stdafx.h" нужен для каких-то нестандартных приколов Visual C++, его надо просто оставить и не трогать. То же относится к заголовку
_tmain(). Правда, если у вас компилятор ругается, то может быть, надо писать не
_tmain(), а
main().
Вы должны определить переменные, а потом с ними работать. Например, так:
int x,y,a,b;
a=x-1;
b=x+1;
Отдельные
; разделяют между собой предложения, как в русском языке точки. Первое предложение - объявление четырёх переменных типа
int. Потом идут предложения, осуществляющие вычисления.
Знак = может встречаться и в объявлении переменных, но означает там другое: инициализацию (присваивание начального значения). Хорошим стилем является присваивать начальные значения всем переменным, потому что иначе в них может оказаться "мусор" - какие-то случайные числа. Если их использовать в вычислениях, то программа выдаст непредсказуемый и ненужный результат, от неё обычно нужно другое.
Здесь объявляются те же четыре переменные, и делаются те же операции, но они делаются не как отдельные вычисления, а на этапе создания переменных.
y=pow(x*a*b*b+1, 1.0/3)/a*b*b*b;
Всё это хорошо, но выглядит как вычисления с дробными числами, а переменные у вас объявлены как целые, то есть в результате может получиться не то, что вы ожидаете. Для вычислений с дробными числами, их надо объявлять не
int, а
double.
printf("x=%f\t y=%t\n\n",x,y);
Скорей всего, вы имели в виду
printf("x=%f\t y=%f\n\n",x,y);
%t не напечатает числа
y. Результат вообще будет неопределён, а в Visual C++ напечатается буква
t.
Но здесь надо следить за совпадением типов переменных, и способа их печати. У вас они разные, это ошибка (скомпилируется нормально, но не сработает). Варианты: целые переменные:
int x, y;
/* ... */
printf("x=%d\t y=%d\n\n",x,y);
дробные переменные:
double x, y;
/* ... */
printf("x=%f\t y=%f\n\n",x,y);
; опускать нельзя, даже для последнего предложения внутри блока. Это не Паскаль. Можно только после закрывающей фигурной скобки блока, и даже нужно во многих случаях.