Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 17.01.2013, 23:27   #1 (permalink)
Spartak1994
Новичок
 
Регистрация: 17.01.2013
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 67
Exclamation Некорректная работа функции при вводе параметров с консоли

#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); она работает не со значениями переменных, а с их адресами, что делать? неужели я не умею сканфом пользоваться(
Spartak1994 вне форума   Ответить с цитированием

Старый 17.01.2013, 23:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Проблема довольно частая, на нашем форуме нашлись совпадения

Gigabyte P35-DS3L - не реагирует на подключение наушников в передней консоли
c++ выделение слов в консоли
Ноутбук из консоли.
Осуждён за модификацию консоли Xbox
Некорректная работа браузеров
Ноутбук из консоли.

Старый 18.01.2013, 00:13   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Код:
#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;
}
kreol вне форума   Ответить с цитированием
Старый 18.01.2013, 18:52   #3 (permalink)
Spartak1994
Новичок
 
Регистрация: 17.01.2013
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 67
По умолчанию

спасибо, теперь все правильно работает
Spartak1994 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.