• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Некорректная работа функции при вводе параметров с консоли

Spartak1994

Ученик
Регистрация
17 Янв 2013
Сообщения
3
Реакции
1
Баллы
0
Некорректная работа функции при вводе параметров с консоли

#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:
 
Код:
#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;
}
 
спасибо, теперь все правильно работает
 
Назад
Сверху