Простейшая программа для начинающих, ввод и вывод комплексных чисел, структуры - C (СИ)
Формулировка задачи:
Нужно ввести и вывести комплексные числа
С языком си только начинаю знакомиться
Где какие ошибки?
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct ComplexObj {
int RealValue;
int ImaginValue;
};
void PrintComplex(struct ComplexObj Zed){
int pv;
pv = Zed.RealValue;
printf("%f",&pv,"%s+i*");
pv = Zed.ImaginValue;
printf("%f",&pv,"\n");
};
void ScanComplex(struct ComplexObj Zed){
printf("z=");
int rv;
scanf("%f",&rv);
Zed.RealValue = rv;
printf("+i*");
scanf("%f",&rv);
Zed.ImaginValue=rv;
printf("\n");
};
struct ComplexObj Z;
ScanComplex(Z);
PrintComplex(Z);
return 0;
}
Надо именно через структуру, без complex.h
только не %f, а %d
Решение задачи: «Простейшая программа для начинающих, ввод и вывод комплексных чисел, структуры»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNING
#include <stdio.h>
#include <stdlib.h>
//#include <malloc.h>
#include <string.h>
struct ComplexObj {
float RealValue;
float ImaginValue;
};
void PrintComplex(struct ComplexObj *Zed){
float pv;
pv = Zed->RealValue;
printf("%f",creal(pv));
printf("+i*");
pv = Zed->ImaginValue;
printf("%f",creal(pv));
};
void ScanComplex(struct ComplexObj *Zed){
printf("z=");
float rv;
scanf("%f", &rv);
Zed->RealValue = rv;
printf("+i*");
scanf("%f", &rv);
Zed->ImaginValue=rv;
printf("\n");
};
int main()
{
struct ComplexObj Z;
ScanComplex(&Z);
PrintComplex(&Z);
return 0;
}
Объяснение кода листинга программы
- Объявлена структура
ComplexObjс полямиRealValueиImaginValueтипаfloat. - Функция
PrintComplexпринимает указатель на объект типаComplexObjи выводит его значение в формате комплексного числа. - Функция
ScanComplexпринимает указатель на объект типаComplexObjи запрашивает у пользователя ввод значения комплексного числа. - В функции
mainсоздан объектZтипаComplexObj, затем вызваны функцииScanComplexиPrintComplexдля ввода и вывода значения этого объекта. - Ввод значения комплексного числа осуществляется в два этапа: сначала вводится действительная часть, затем мнимая.
- Значения полей
RealValueиImaginValueобъектаZинициализируются значениями, введенными пользователем. - Значение объекта
Zвыводится в формате комплексного числа. - Возвращаемое значение функции
main- 0, что означает успешный конец работы программы.