не могу найти ошибку в коде

вроде бы нормальный код, но при компиляции выдает ошибку.

ошибка выглядит так:


1>------ Построение начато: проект: прожка4, Конфигурация: Debug Win32 ------
1>Построение начато 07.10.2012 19:56:17.
1>InitializeBuildStatus:
1>  Обращение к "Debug\прожка4.unsuccessfulbuild".
1>ClCompile:
1>  основной файл прожки4.cpp
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(12): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\установки\vc\include\stdio.h(304): см. объявление "scanf"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(13): warning C4244: =: преобразование "float" в "int", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(19): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(25): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(26): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(9): warning C4101: f: неиспользованная локальная переменная
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(9): warning C4101: d: неиспользованная локальная переменная
1>  основной файл прожки 4 2.cpp
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(12): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\установки\vc\include\stdio.h(304): см. объявление "scanf"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(14): warning C4244: =: преобразование "float" в "int", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(15): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(22): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(42): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1>          d:\установки\vc\include\conio.h(128): см. объявление "getch"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(44): fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(6)"
1>  как вариант.cpp
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(11): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          d:\установки\vc\include\stdio.h(304): см. объявление "scanf"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(12): warning C4244: =: преобразование "float" в "int", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(13): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(20): warning C4244: =: преобразование "int" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(29): warning C4244: =: преобразование "double" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(30): warning C4244: =: преобразование "double" в "float", возможна потеря данных
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(40): warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
1>          d:\установки\vc\include\conio.h(128): см. объявление "getch"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(7): warning C4101: f: неиспользованная локальная переменная
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(7): warning C4101: d: неиспользованная локальная переменная
1>  Создание кода...
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\как вариант.cpp(12): warning C4700: использована неинициализированная локальная переменная "x"
1>d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки4.cpp(13): warning C4700: использована неинициализированная локальная переменная "x"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.35
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

программа должна была считывать коэффициенты a, b, c и вычислять корни квадратного уравнения.
исходный код:

#include <stdio.h>
#include <math.h>
#include <conio.h>

int main()
{
int a , b , c , d , o = 0 , f ;
float x , x1, k;
double sq ;
printf ("Vvedite znachenija a, b, c: ");
scanf("%d, %d, %d", &a, &b, &c);
o = a * x * x + b * x + c;
k = b * b - 4 * a * c;

if (k < 0)
printf("Kornei net!");

if (k = 0)
{
x = - b / 2 * a;
printf("%f", x);
}

if (k > 0)
sq = sqrt(k);

if(k>0)
{
x = (-b + sq)/2*a;
x1 = (-b - sq)/2*a;
printf("%f, %f", x, x1);
}
else
{
x = (-b + k)/2*a;
x1 = (-b - k)/2*a;
printf("%f, %f", x, x1);
}

getch(); 
return 0;

В ЧЕМ КОСЯК?! не могу разобраться.

сначала избавься от этого =

warning C4700: использована неинициализированная локальная перем

с этим точно не скомпилируется =

fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\илья\с++\илюха\прожка 4\прожка4\прожка4\основной файл прожки 4 2.cpp(6)"

вообще там если два раза кликаешь на строчку уведомления - студия покажет строчку в который ошибка.

_________ _ _ ______
dthcbz фкн вгу and co

vedro-compota's picture

для начала надо бы отформатировать код -
отступ слева = два пробела для каждого логического включения)

_____________
матфак вгу и остальная классика =)

humanmashine's picture

Надо поставить , как минимум закрывающую скобку для функции main. Да и чтобы компилятор не выдавал такого количества предупреждений и они просто не отбивали желания прочитать и разобраться, то не стоит делать так много преобразований типов - используйте везде double. Ведь эта прога не входит в состав супер требовательного продукта и экономить память на таких переменных не стоит. Да в и больших продуктах далеко не всегда оправданно.
Если после постановки скобки код не скомпилируется, то постарайтесь исправить такой объём преобразований типов и скинуть лог сборки заного.

baton's picture

господа, мне стыдно за мой кривой исходный код, я посидел некоторое время и (не без посторонней помощи) исправил. вот рабочая версия:

#include "stdio.h"
#include "math.h"
#include "conio.h"


int main()
{
	float x , x1, sq, a, b, c;

	printf("Vvedite znachenija a, b, c: ");
	scanf("%f, %f, %f", &a, &b, &c);

	if (a == 0) {
		x = - c / b;
		printf("%f", x);
	}
	else {
		float k;
		k = b * b - 4 * a * c;

		if (k < 0) {
			printf("Kornei net!");
		}
		else if (k == 0) {
			x = - b / (2 * a);
			printf("%f", x);
		}
		else {
			sq = sqrt(k);
			x = (-b + sq) / (2 * a);
			x1 = (-b - sq) / (2 * a);
			printf("%f, %f", x, x1);
		}
	}
	getch();
	return 0;
}

(знаки больше\меньше при указании библиотек вручную заменены на кавычки)

humanmashine's picture

Для стандартных библиотек без разницы что использовать кавычки или знаки больше\меньше. Просто знаки "" ищут в строго определённом месте модули, а вот с кавычками сложнее, там используется "метод матрёшки", если конкретный путь не указывается, то смотрится эта библиотека сначала в рабочей папке, потом на уровне выше и так далее.

vedro-compota's picture

фишка в том, что теперешний html-фильтр давит угловые скобки если они стоят вплотную к слову на английском.
потому рекомендую в коде просто добавлять пробелы.
если индустрия написания кода на си++ будет поставлена на поток - то тогда будем искать другое решение)

_____________
матфак вгу и остальная классика =)

humanmashine's picture

примем к сведению

vedro-compota's picture

во) так уже лучше)

_____________
матфак вгу и остальная классика =)