#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
typedef struct DATA{
int a;
int b;
}FUSH;
FUSH *creat(FUSH *T);
void destory(FUSH T[]);
void get(FUSH T[]);
void put(FUSH T[]);
FUSH oper(FUSH T[]);
int menu_select();
void main()
{
FUSH *data,Y;
int i;
while(1){switch(menu_select())
{
case 1:{data=creat(data);
for(i=0;i<2;i++)
printf("%d+%d*i\n",data[i].a,data[i].b);} break;
case 2:get(data);break;
case 3:put(data);break;
case 4:{ Y=oper(data);
printf("%d+%d*i\n",Y.a,Y.b);}break;
case 5:destory(data);break;
case 6:exit(-1);
}
}
getch();
}
/*创建函数*/
FUSH *creat(FUSH *T)
{
int i;
T=(FUSH *)malloc(2*sizeof(FUSH));
printf("\n输入实部和虚部\n");
for(i=0;i<2;i++)
{printf("\n输入a: ");
scanf("%d",&T[i].a);
printf("\n输入b: ");
scanf("%d",&T[i].b);
}
return(T);
}
/*删除函数*/
void destory(FUSH T[])
{
free(T);
printf("成功删除\n");
}
/*查找函数*/
void get(FUSH T[])
{
int i;
do{
printf("输入你想查找第几个负数:\n");
scanf("%d",&i);
}while(i<=0||i>=3);
printf("你所要查找的第%d个数是%d+%d*i\n",T[i-1].a,T[i-1].b);
}
/*修改函数*/
void put(FUSH *T)
{
int a,b;
int i;
do{
printf("输入你想修改第几个负数:\n");
scanf("%d",&i);
}while(i<=0||i>=3);
printf("输入实部和虚部:\n");
scanf("%d%d",&a,&b);
T[i-1].a=a;
T[i-1].b=b;
for(i=0;i<2;i++)
printf("%d+%d*i\n",T[i].a,T[i].b);
}
/*运算函数*/
FUSH oper(FUSH *T)
{
char c;
FUSH X;
printf("输入你想进行的操作运算'+','-','*','/': "); /*为什么不接受输入就直接显示了*/
c=getchar();
switch(c){
case '+': {X.a=T[0].a+T[1].a;
X.b=T[0].b+T[1].b;
}break;
case '-': {X.a=T[0].a-T[1].a;
X.b=T[0].b-T[1].b;
}break;
case '*':{ X.a=T[0].a*T[1].a-T[0].b*T[1].b;
X.b=T[0].a*T[1].b+T[0].b*T[1].a;
}break;
case '/':{ X.a=(T[0].a*T[1].a+T[0].b*T[1].b)/(T[1].a+T[1].b);
X.b=(T[0].b*T[1].a-T[0].a*T[1].b)/(T[1].a+T[1].b);
}break;
}
return(X);
}
int menu_select()
{
int n;
printf("\n1.创建负数\n");
printf("2.查找\n");
printf("3.修改\n");
printf("4.运算\n");
printf("5.删除\n");
printf("6.退出\n");
do{ printf(" 选择菜单\n");
scanf("%d",&n);}while(n<=0||n>=7);
return(n);
}