读书人

复数的加减法

发布时间: 2012-03-14 12:01:12 作者: rapoo

复数的加减法,求助

C/C++ code
#include <stdio.h>typedef struct node fushu;typedef fushu* ptrfushu;struct node{    float shibu;    float xubu;};int  main(){    void set(ptrfushu s1);    void plus(ptrfushu s1,ptrfushu s2);    void sub(ptrfushu s1,ptrfushu s2);    int choice=0;    ptrfushu s1=NULL,s2=NULL;    printf("---------复数计算器--------\n");    printf("1.-----计算两个复数X和Y的和\n");    printf("2.-----计算两个复数X和Y的差\n");    printf("3.-----退出复数计算器\n");    printf("请选择操作\n");    scanf("%d",&choice);    switch(choice)    {    case 1:        set(s1);        set(s2);        plus(s1,s2);        break;    case 2:        set(s1);        set(s2);        sub(s1,s2);    case 3:        break;    }    return 0;}void set(ptrfushu s1){    float x,y;    printf("请输入第一个复数的实部和虚部,用逗号分开:(如2,3)\n");    scanf("%f,%f",&x,&y);    s1->shibu=x;    s1->xubu=y;}void plus(ptrfushu s1,ptrfushu s2){    printf("两个复数的和为%f + %fi\n",s1->shibu+s2->shibu,s1->xubu+s2->xubu);}void sub(ptrfushu s1,ptrfushu s2){    printf("两个复数的差为%f + %fi\n",s1->shibu-s2->shibu,s1->xubu-s2->xubu);}

我输入2,3
之后崩溃了,怎么办?

[解决办法]
C/C++ code
    //ptrfushu s1=NULL,s2=NULL;    ptrfushu s1 = new node;    ptrfushu s2 = new node;
[解决办法]
指针指到空内存去了。要给它分配内存空间,最后还要delete。
[解决办法]
额,c++的直接“+”用算符重载,c还没学。
[解决办法]
c语言里面用malloc()
c++里面才是new

读书人网 >C++

热点推荐