Форум программистов, компьютерный форум CyberForum.ru

МОжна тут такое зделать? - C++

Восстановить пароль Регистрация
 
Максим2
 Аватар для Максим2
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 5
25.09.2011, 19:37     МОжна тут такое зделать? #1
Программа которая после ввода значения кофициентив выдает сообщение имеет квадратное уравнение действительные корни или нет?
Я знаю начало только #include <iostream> )))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.09.2011, 20:10     МОжна тут такое зделать? #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <math.h>
 
int main(void){
    double a, b, c;
    
    while ( printf("A = ") && scanf("%lf", &a) == 1 && printf("B = ") && scanf("%lf", &b) && printf("C = ") && scanf("%lf", &c) == 1 ){
        double d = b * b - 4.0 * a * c;
        
        if ( ( a == 0.0 ) || ( b == 0.0 ) ){
            fprintf(stderr, "Wrong parameters!\n");
            continue;
        }
        
        printf("D = %.2f\n", d);
        
        if ( d < 0.0 )
            printf("No real roots.\n");
        else if ( d == 0.0 )
            printf("One root.\nX = %.2f\n", -b / ( 2.0 * a ));
        else
            printf("Two roots.\nX1 = %.2f\nX2 = %.2f\n", ( -b - sqrt(d) ) / ( 2.0 * a ), ( -b + sqrt(d) ) / ( 2.0 * a ) );
    }
    
    return 0;
}
Максим2
 Аватар для Максим2
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 5
25.09.2011, 20:22  [ТС]     МОжна тут такое зделать? #3
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <math.h>
 
int main(void){
    double a, b, c;
    
    while ( printf("A = ") && scanf("%lf", &a) == 1 && printf("B = ") && scanf("%lf", &b) && printf("C = ") && scanf("%lf", &c) == 1 ){
        double d = b * b - 4.0 * a * c;
        
        if ( ( a == 0.0 ) || ( b == 0.0 ) ){
            fprintf(stderr, "Wrong parameters!\n");
            continue;
        }
        
        printf("D = %.2f\n", d);
        
        if ( d < 0.0 )
            printf("No real roots.\n");
        else if ( d == 0.0 )
            printf("One root.\nX = %.2f\n", -b / ( 2.0 * a ));
        else
            printf("Two roots.\nX1 = %.2f\nX2 = %.2f\n", ( -b - sqrt(d) ) / ( 2.0 * a ), ( -b + sqrt(d) ) / ( 2.0 * a ) );
    }
    
    return 0;
}
Спасибо!
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.09.2011, 20:32     МОжна тут такое зделать? #4
Только b по-моему может быть нулём, то бишь

Цитата Сообщение от easybudda Посмотреть сообщение
if ( ( a == 0.0 ) || ( b == 0.0 ) ){
правильнее заменить на
C
1
if ( a == 0.0 ){
Yandex
Объявления
25.09.2011, 20:32     МОжна тут такое зделать?
Ответ Создать тему
Опции темы

Текущее время: 17:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru