Технический форум

Технический форум (http://www.tehnari.ru/)
-   C/C++/С# (http://www.tehnari.ru/f42/)
-   -   Некорректная работа функции при вводе параметров с консоли (http://www.tehnari.ru/f42/t84070/)

Spartak1994 17.01.2013 23:27

Некорректная работа функции при вводе параметров с консоли
 
#include<stdio.h>
#include<math.h>
#include<Windows.h>
void Urovnenie (double a, double b, double c)
{
double x1=0, x2=0, d=0;
d=b*b-4.0*a*c;


if(d<0)
{
printf("Уравнение не имеет решения так как его Дискриминант меньше нуля\n");
}
else
{
if(d==0)
{
x1=-b/(2*a);
printf("Квадратное уравнение имеет единственное решение: %d",x1);
}
else
{

x1=-b/(2*a)-(sqrt (d))/(2*a);
x2=-b/(2*a)+(sqrt (d))/(2*a);
printf("Квадратное уравнение имеет два разных корня\n");
printf("X1= %f\n",x1);
printf("X2= %f\n",x2);
}
}

}
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int i=0;
double a=0, b=0, c=0;

printf("Введите первый коэфициент уровнения А: ");
scanf("%d",&a);
printf("Введите второй коэфициент уровнения B: ");
scanf("%d",&b);
printf("Введите третий коэфициент уровнения C: ");
scanf("%d",&c);
Urovnenie(a,b,c);


printf("\n");
return 0;
}

эта программа должна по идее решать квадратные уравнения, но вот в этом месте Urovnenie(a,b,c); она работает не со значениями переменных, а с их адресами, что делать? неужели я не умею сканфом пользоваться(:tehnari_ru_837:

kreol 18.01.2013 00:13

Код:

#include<stdio.h>
#include<math.h>
#include<Windows.h>
void Urovnenie (float a, float b, float c)
{
float x1=0, x2=0, d=0;
d=b*b-4.0*a*c;


if(d<0)
{
printf("Уравнение не имеет решения так как его Дискриминант меньше нуля\n");
}
else
{
if(d==0)
{
x1=-b/(2*a);
printf("Квадратное уравнение имеет единственное решение: %g",x1);
}
else
{

x1=-b/(2*a)-(sqrt (d))/(2*a);
x2=-b/(2*a)+(sqrt (d))/(2*a);
printf("Квадратное уравнение имеет два разных корня\n");
printf("X1= %g\n",x1);
printf("X2= %g\n",x2);
}
}

}
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int i=0;
float a=0, b=0, c=0;

printf("Введите первый коэфициент уровнения А: ");
scanf("%g",&a);
printf("Введите второй коэфициент уровнения B: ");
scanf("%g",&b);
printf("Введите третий коэфициент уровнения C: ");
scanf("%g",&c);
Urovnenie(a,b,c);


printf("\n");
return 0;
}


Spartak1994 18.01.2013 18:52

спасибо, теперь все правильно работает


Часовой пояс GMT +4, время: 20:15.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.