С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/56: Рейтинг темы: голосов - 56, средняя оценка - 4.66
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402

Структур комплексных чисел

09.09.2010, 09:18. Показов 11550. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: Организовать структуру комплексных чисел и для неё реализовать операции: +, -, *, /, и нахождение сопряженного числа. Результат вывести на экран. Для демонстрации работы функции сделать меню с возможностью выбора. (это я думаю про знаки операции)

вот что у меня выходит по тексту, проблема в том что, сначала компилируется все норм, и даж выводит первый запрос, потом все глючит, выдается ошибка по переменным - a, f, k - вот что с ними можно сделать я и не могу понять, объясните пж.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "stdafx.h" 
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
#include "conio.h"
using namespace std;
 
struct KOMPLEX
        {
            float Re;
            float Im;   
        };
 
int _tmain()
{
setlocale (LC_ALL, "Russian");
KOMPLEX a, f, k;
char w;
    printf ("Введите действительную чать 1ого числа \n");
    scanf_s("%f", a.Re);         
    printf ("Введите мнимую чать 1ого числа \n");
    scanf_s("%f", a.Im);    
 
    printf ("Введите действительную чать 2ого числа \n");
    scanf_s("%f", f.Re);        
    printf ("Введите мнимую чать 2ого числа \n");
    scanf_s("%f", f.Im);
 
    printf ("Введите знак действи который хотите совершить -, +, *, /  или  s -  что будет означать что вам необходимо найти сопряженное  для 1ого комплексного числа \n");
    scanf_s ("%s", w);
 
    switch (w)
    {
    case '-': k.Re = a.Re - f.Re;
              k.Im = a.Im - f.Im;
              break;
    case '+': k.Re = a.Re + f.Re;
              k.Im = a.Im + f.Im; 
              break;
    case '*': k.Re = a.Re * f.Re - a.Im * f.Im;
              k.Im = a.Re * f.Im + a.Im * f.Re; 
              break;
    case '/': k.Re = (a.Re * f.Re + a.Im * f.Im)/(f.Re * f.Re + f.Im * f.Im);
              k.Im = (a.Im * f.Re - a.Re * f.Im)/(f.Re * f.Re + f.Im * f.Im); 
              break;
    case 's': k.Re = a.Re;
              k.Im = -a.Im; 
              break;
    };
 
printf (" Ответ");
scanf_s ("%f", k.Re+k.Im);
 
 
_getch();
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2010, 09:18
Ответы с готовыми решениями:

Класс комплексных чисел
Задание : Комплексные числа описываются структурой вида: Преобразовать структуру в класс, включив в него методы, выполняющие...

Умножение комплексных чисел
у меня имеется прога, по решению данной задачи, с помощью структуры struct complex { int re; int img; } a, b; ...

Класс комплексных чисел
Здравствуйте, уважаемые форумчане. Нужна ваша помощь. У кого есть свободное время, то помогите пожалуйста с этим, буду очень благодарен. ...

37
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 16:39
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от silent_1991 Посмотреть сообщение
я просто всегда double использую, поэтому по привычке lf написал
Я Вас удивлю, но и для вывода double модификатор l не нужен. При выводе long double используется %Lf.
Цитата Сообщение от silent_1991 Посмотреть сообщение
Для проверки попробуйте убрать %*c
Тогда вместо знака будет '\n' в переменную попадать. Можно вот так например сделать:
C
1
2
fflush(stdin);
scanf("%c", &w);
проверял - тоже работает. Но по-моему беда не в этом. Скопируйте из редактора весь текст и сюда выложите...
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.09.2010, 16:43
easybudda,
Я Вас удивлю, но и для вывода double модификатор l не нужен
Хм... меня как научили на первом курсе писать lf, всегда этому следовал... И теперь, боюсь, уже не переучусь...

На счёт %*c, как выяснилось, именно это место компилятору и не понравилось...
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 17:03
White Luna, да, кстати... Если используете русскую локаль, отделяйте в числах дробную часть запятой, а не точкой!

Добавлено через 10 минут
Цитата Сообщение от silent_1991 Посмотреть сообщение
меня как научили на первом курсе писать lf, всегда этому следовал...
Modifier a, A, e, E, f, F, g, G
l (ell) double (ignored, same behavior as without it)
L long double
man 3 printf
Цитата Сообщение от silent_1991 Посмотреть сообщение
На счёт %*c, как выяснилось, именно это место компилятору и не понравилось...
CONVERSIONS
Following the % character introducing a conversion there may be a number
of flag characters, as follows:

* Suppresses assignment. The conversion that follows occurs as
usual, but no pointer is used; the result of the conversion is
simply discarded.
man 3 scanf
у меня "%*c" прекрасно отработало, да и довольно давно так делаю - без проблем...

Добавлено через 9 минут
Цитата Сообщение от White Luna Посмотреть сообщение
"%s" прога прошла дальше терь ему не нравиться как у ми ответ выводится, пишет слово ответ иглохнет
Правильно - у Вас w объявлена как переменная типа char, а Вы туда строку запихнуть пытаетесь. То есть в ячейку памяти, находящуюся после w пишется '\0', вот отсюда и проблема. Попробуйте fflush() использовать (выше показал, как).
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.09.2010, 17:07
easybudda,
Мне тоже так кажется, у меня в RAD studio всё работает...
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
09.09.2010, 17:33  [ТС]
Вот полный текст проги, вот тока после строчк вывода выходит окно Run-Time Check Failure #3 - The variable 'k' is deing used without deing initialized.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"
#include "tchar.h"
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
#include "conio.h"
using namespace std;
 
struct KOMPLEX
        {
            float Re;
            float Im;   
        };
 
int _tmain()
{
setlocale (LC_ALL, "Russian");
KOMPLEX a, f, k;
char w;
    printf ("Введите действительную чать 1ого числа \n");
    scanf_s("%f", &a.Re);        
    printf ("Введите мнимую чать 1ого числа \n");
    scanf_s("%f", &a.Im);   
 
    printf ("Введите действительную чать 2ого числа \n");
    scanf_s("%f", &f.Re);       
    printf ("Введите мнимую чать 2ого числа \n");
    scanf_s("%f", &f.Im);
 
    fflush(stdin);
    printf ("Введите знак действи который хотите совершить -, +, *, /  или  s -  что будет означать что вам необходимо найти сопряженное  для 1ого комплексного числа \n");
    scanf_s ("%c", &w);  // конструкция %*c, "проглатывает" символ '\n', который в потоке после предыдущего ввода остался,
                            // %с - считывает 1 символ и помещает его в переменную w;
 
    switch (w)
    {
    case '-': k.Re = a.Re - f.Re;
              k.Im = a.Im - f.Im;
              break;
    case '+': k.Re = a.Re + f.Re;
              k.Im = a.Im + f.Im; 
              break;
    case '*': k.Re = a.Re * f.Re - a.Im * f.Im;
              k.Im = a.Re * f.Im + a.Im * f.Re; 
              break;
    case '/': k.Re = (a.Re * f.Re + a.Im * f.Im)/(f.Re * f.Re + f.Im * f.Im);
              k.Im = (a.Im * f.Re - a.Re * f.Im)/(f.Re * f.Re + f.Im * f.Im); 
              break;
    case 's': k.Re = a.Re;
              k.Im = -a.Im; 
              break;
    };
 
printf (" Ответ");
 
 scanf_s ("%f + %f \n", k.Re, k.Im);
 
 
_getch();
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
White Luna Попробуйте fflush() использовать (выше показал, как).
попробовала тоже самое

Добавлено через 15 минут
easybudda, мож выложить свой вариант проги еще раз, а то не понимаю почему у меня не считает, точнее не выводит результат
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 17:38
Цитата Сообщение от White Luna Посмотреть сообщение
scanf_s ("%f + %f \n", k.Re, k.Im);
это... тут же ответ выводиться должен...
C++
1
printf("%f + %f \n", k.Re, k.Im);
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
09.09.2010, 17:41  [ТС]
Цитата Сообщение от easybudda Посмотреть сообщение
это... тут же ответ выводиться должен...
C++
1
printf("%f + %f \n", k.Re, k.Im);
это то верно но у меня выводит тока то что перед этим Ответ и дальше прога глючит и выходит окошко вот с этим текстом Run-Time Check Failure #3 - The variable 'k' is deing used without deing initialized.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.09.2010, 17:44
White Luna,
А теперь ещё разок и помедленнее... Почему вы пишите scanf_s там, где должна быть printf?
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
09.09.2010, 17:46  [ТС]
Цитата Сообщение от silent_1991 Посмотреть сообщение
White Luna,
А теперь ещё разок и помедленнее... Почему вы пишите scanf_s там, где должна быть printf?
там scanf_s , просто описались наверно когда тут писали, просто чутьь выше последний вариант проги посмотри
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 17:47
Цитата Сообщение от White Luna Посмотреть сообщение
это то верно но у меня выводит тока то что перед этим Ответ и дальше прога глючит и выходит окошко вот с этим текстом
Так Вы после слова "Ответ" scanf_s на printf поменяйте - вот я так сделал и всё работает!
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
09.09.2010, 18:34  [ТС]
я сделала как ты сказал всеравно та же шняга появляется

Добавлено через 39 минут
silent_1991, мож показать свой вариант проги мож я все таки что то упускаю?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
09.09.2010, 18:47
Цитата Сообщение от White Luna Посмотреть сообщение
мож показать свой вариант проги мож я все таки что то упускаю?
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define STR_LEN 256
    
char * ru(const char * str){
    static char buf[STR_LEN];
    CharToOemA(str, buf);
    return buf;
}
 
typedef struct {
    double Re;
    double Im;
} complex_t;
 
int main(void){
    complex_t a, b, c;
    char action;
    
    printf("%s\n", ru("Введите действительную чать 1ого числа"));
    if ( scanf("%lf", &a.Re) != 1 ){
        fprintf(stderr, "%s\n", ru("Ошибка ввода a.Re"));
        exit(1);
    }
    printf("%s\n", ru("Введите мнимую чать 1ого числа"));
    if ( scanf("%lf", &a.Im) != 1 ){
        fprintf(stderr, "%s\n", ru("Ошибка ввода a.Im"));
        exit(1);
    }
    printf("%s\n", ru("Введите действительную чать 2ого числа"));
    if ( scanf("%lf", &b.Re) != 1 ){
        fprintf(stderr, "%s\n", ru("Ошибка ввода b.Re"));
        exit(1);
    }
    printf("%s\n", ru("Введите мнимую чать 2ого числа"));
    if ( scanf("%lf", &b.Im) != 1 ){
        fprintf(stderr, "%s\n", ru("Ошибка ввода b.Im"));
        exit(1);
    }
    printf("%s\n", ru("Введите знак действия, которое хотите совершить -, +, *, /  или  s, что будет\n"
    "означать что вам необходимо найти сопряженное  для 1ого комплексного числа"));
    if ( scanf("%*c%c", &action) != 1 ){
        fprintf(stderr, "%s\n", ru("Ошибка ввода знака действия"));
        exit(1);
    }
    
    switch ( action ){
        case '-' :
            c.Re = a.Re - b.Re;
            c.Im = a.Im - b.Im;
        break;
        case '+' :
            c.Re = a.Re + b.Re;
            c.Im = a.Im + b.Im;
        break;
        case '*' :
            c.Re = a.Re * b.Re - a.Im * b.Im;
            c.Im = a.Re * b.Im + a.Im + b.Re;
        break;
        case '/' :
            c.Re = (a.Re * b.Re + a.Im * b.Im)/(b.Re * b.Re + b.Im * b.Im);
            c.Im = (a.Im * b.Re - a.Re * b.Im)/(b.Re * b.Re + b.Im * b.Im);
        break;
        case 's' :
            c.Re = a.Re;
            c.Im = -1 * a.Im;
        break;
        default :
            fprintf(stderr, "%s\n", ru("Неизвестное действие"));
            exit(1);
        break;
    }
    
    printf("%s: %f + %f\n", ru("Ответ"), c.Re, c.Im);
    
    system("pause");
    exit(0);
}
правильность формул не проверял, сделал так же, как у Вас было...
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
09.09.2010, 18:49
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "tchar.h"
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
#include "conio.h"
 
using namespace std;
 
struct COMPLEX
{
    double Re;
    double Im;
};
 
int _tmain()
{
    COMPLEX a, f, k;
    char w;
    printf("x1 = ");
    scanf("%lf", &a.Re);
    printf("y1 = ");
    scanf("%lf", &a.Im);
 
    printf("x2 = ");
    scanf("%lf", &f.Re);
    printf("y2 = ");
    scanf("%lf", &f.Im);
 
    printf("-, +, *, /, s: ");
    scanf("%*c%c", &w);
 
    switch (w)
    {
        case '-':
            k.Re = a.Re - f.Re;
            k.Im = a.Im - f.Im;
            break;
        case '+':
            k.Re = a.Re + f.Re;
            k.Im = a.Im + f.Im;
            break;
        case '*':
            k.Re = a.Re * f.Re - a.Im * f.Im;
            k.Im = a.Re * f.Im + a.Im * f.Re;
            break;
        case '/':
            k.Re = (a.Re * f.Re + a.Im * f.Im) / (f.Re * f.Re + f.Im * f.Im);
            k.Im = (a.Im * f.Re - a.Re * f.Im) / (f.Re * f.Re + f.Im * f.Im);
            break;
        case 's':
            k.Re = a.Re;
            k.Im = -a.Im;
            break;
    };
 
    printf("%lf + %lfi", k.Re, k.Im);
 
    getch();
    return 0;
}
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
10.09.2010, 08:46  [ТС]
блин где то лажаю.... у ми ваши проги тож работают, почему же моя дурью страдает

Добавлено через 12 часов 44 минуты
? подскажите как можно перед мнимой частью, если она отрицательная, поменять 2 знака на 1. а топри выводе получается что типо такого a + - bi? а хотелось бы чтобы знак был тока 1 минус,
0
84 / 57 / 8
Регистрация: 07.08.2010
Сообщений: 185
10.09.2010, 09:46
Цитата Сообщение от White Luna Посмотреть сообщение
? подскажите как можно перед мнимой частью, если она отрицательная, поменять 2 знака на 1. а топри выводе получается что типо такого a + - bi? а хотелось бы чтобы знак был тока 1 минус,
Проще простого:
C++
1
2
3
    char s[4] = "\n";
    printf("%2s%43s%n" + (k.Im > 0) * 3, s, s, s);
    printf("%lf %s %lfi\n", k.Re, s, k.Im > 0 ? k.Im : -k.Im);
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
10.09.2010, 14:27  [ТС]
у ми проще)
C++
1
2
if (k.Im<0) { printf("%lf  %lfi \n", k.Re, k.Im);}
        else printf("%lf + %lfi \n", k.Re, k.Im);
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
11.09.2010, 12:15
White Luna,
Вы нашли ошибку в своём коде?
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
17.09.2010, 23:02  [ТС]
Вот еще 2 версии рабочей проги по этому вопросу
1) через оператор switch
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// laba1.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "tchar.h"
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
#include "conio.h"
 
using namespace std;
 
struct KOMPLEX
{
        double Re;
        double Im;
};
 
int _tmain()
{
setlocale (LC_ALL, "Russian");
        KOMPLEX a, f, k;
        char w;
        int q=1;
        do 
        {
        printf("Введите действительную чать 1ого числа \n ");
        scanf("%lf", &a.Re);
        printf("Введите мнимую чать 1ого числа \n ");
        scanf("%lf", &a.Im);
 
        printf("Введите действительную чать 2ого числа \n ");
        scanf("%lf", &f.Re);
        printf("Введите мнимую чать 2ого числа \n ");
        scanf("%lf", &f.Im);
 
        printf("Введите знак действи который хотите совершить -, +, *, /  или  s -  что будет означать что вам необходимо найти сопряженное  для 1ого комплексного числа: \n ");
        scanf("%*c%c", &w); // конструкция %*c, "проглатывает" символ '\n', который в потоке после предыдущего ввода остался,
                            // %с - считывает 1 символ и помещает его в переменную w;
 
        switch (w)
        {
                case '-':
                        k.Re = a.Re - f.Re;
                        k.Im = a.Im - f.Im;
                        break;
                case '+':
                        k.Re = a.Re + f.Re;
                        k.Im = a.Im + f.Im;
                        break;
                case '*':
                        k.Re = a.Re * f.Re - a.Im * f.Im;
                        k.Im = a.Re * f.Im + a.Im * f.Re;
                        break;
                case '/':
                        k.Re = (a.Re * f.Re + a.Im * f.Im) / (f.Re * f.Re + f.Im * f.Im);
                        k.Im = (a.Im * f.Re - a.Re * f.Im) / (f.Re * f.Re + f.Im * f.Im);
                        break;
                case 's':
                        k.Re = a.Re;
                        k.Im = - a.Im;
                        break;
        };
        printf (" Ответ \n");
        if (k.Im<0) { printf("%lf  %lfi \n", k.Re, k.Im);}
        else printf("%lf + %lfi \n", k.Re, k.Im);
 
        printf ("Хотите повторить запрос нажмите 1, выйти нажмите 0 \n");
        scanf_s ("%d", &q);
        }
        while (q==1);
        
       system("pause");
       exit(0);
        _getch();
        return 0;
}
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/ hftfh.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "tchar.h"
#include "string.h"
#include "stdio.h"
#include "locale.h"
#include "iostream"
#include "conio.h"
 
using namespace std;
 
struct KOMPLEX
{
        double Re;
        double Im;
};
 
                    KOMPLEX minus (KOMPLEX &a, KOMPLEX &f){
                    KOMPLEX k; 
                    k.Re = a.Re - f.Re;
                    k.Im = a.Im - f.Im;
                    return k;};                       
                    
                    KOMPLEX plus (KOMPLEX &a, KOMPLEX &f){
                    KOMPLEX k;
                    k.Re = a.Re + f.Re;
                    k.Im = a.Im + f.Im;
                    return k;};
                    
                        KOMPLEX umnog (KOMPLEX &a, KOMPLEX &f){
                        KOMPLEX k;
                        k.Re = a.Re * f.Re - a.Im * f.Im;
                        k.Im = a.Re * f.Im + a.Im * f.Re;
                        return k;};
                     
               
                        KOMPLEX delenie (KOMPLEX &a, KOMPLEX &f){
                        KOMPLEX k; 
                        k.Re = (a.Re * f.Re + a.Im * f.Im) / (f.Re * f.Re + f.Im * f.Im);
                        k.Im = (a.Im * f.Re - a.Re * f.Im) / (f.Re * f.Re + f.Im * f.Im);
                        return k;};
                     
               
                        KOMPLEX sopryg (KOMPLEX &a, KOMPLEX &f){
                        KOMPLEX k;
                        k.Re = a.Re;
                        k.Im = - a.Im;
                        return k;};
 
                        void znak (KOMPLEX &k){
                        if (k.Im<0) { printf("%lf  %lfi \n", k.Re, k.Im);}
                        else printf("%lf + %lfi \n", k.Re, k.Im);};
int _tmain()
{
        setlocale (LC_ALL, "Russian");
        KOMPLEX a, f, k;
        char w;
        int q=1;
        do{
        printf("Введите действительную чать 1ого числа \n ");
        scanf("%lf", &a.Re);
        printf("Введите мнимую чать 1ого числа \n ");
        scanf("%lf", &a.Im);
 
        printf("Введите действительную чать 2ого числа \n ");
        scanf("%lf", &f.Re);
        printf("Введите мнимую чать 2ого числа \n ");
        scanf("%lf", &f.Im);
 
        printf("Введите знак действи который хотите совершить -, +, *, /  или  s -  что будет означать что вам необходимо найти сопряженное  для 1ого комплексного числа: \n ");
        scanf("%s", &w);
printf (" Ответ \n");
 
        switch (w)
        {
                case '-':
                       znak(minus( a,f));
                        break;
                case '+':
                        znak(plus( a,f));
                                                break;
                case '*':
                        znak(umnog( a,f));                      
                        break;
                case '/':
                        znak(delenie( a,f));
                                                break;
                case 's':
                        znak(sopryg( a,f));                     
                        break;
        };
       
        
 
        printf ("Хотите повторить запрос нажмите 1, выйти нажмите 0 \n");
        scanf_s ("%d", &q);
        }
        while (q==1);
       system("pause");
       exit(0);
        _getch();
        return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2010, 23:02
Помогаю со студенческими работами здесь

Сложение комплексных чисел
Необходимо ввести с клавиатуры 2 комплексных числа, после чего получить результат их сложения. Использовать строки

Деление комплексных чисел
Запуталась с делением комплексных чисел. Помогите пожалуйста. struct complex { double a; double b; }A,B,C; void...

Класс комплексных чисел
Привет))) Пожалуйста, помогите мне создать эту программу!) Я буду вам благодарна) Разработать алгоритм и программу ввода с клавиатуры...

Класс Комплексных Чисел
Здравствуйте, попробовал тут написать класс комплексных чисел, но пишет ошибку error: statement cannot resolve adress of overloaded...

Калькулятор комплексных чисел
Помогите пожалуйста с задачей. Выполнить структурную декомпозицию, разработать структурную схему и алгоритмы программ. Реализовать на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru