codeblocks的运行问题

在codeblocks上,同一个程序在我的电脑上运行时,按任意键,运行直接结束,然后退出了,在我朋友的电脑上就可以进入系统,环境设置没有问题,可以编译,只是运行有问题。

#include<stdio.h>
#include<string.h>
#include<stdio.h>
typedef struct{
    float real;
    float imag;
}complex;
void show(complex x){
    if(x.real!=0){
        if(x.imag>0){
            printf("%.2f+i%.2f\n",x.real,x.imag);
        }
        else
            if(x.imag==0)
                printf("%.2f\n",x.real);
            else{
                x.imag=-x.imag;
                printf("%.2f-i.2%\n",x.real,x.imag);
            }
        }
    else{
        if(x.imag>0)
            printf("i%.2f\n",x.imag);
        else{
            x.imag=-x.imag;
            printf("-i%.2f\n",x.imag);
        }
    }
}
void add(complex x,complex y){
    complex sub;
    sub.real=x.real+y.real;
    sub.imag=x.imag+y.imag;
    show(sub);
}
void minus(complex x,complex y){
    complex sub;
    sub.real=x.real-y.real;
    sub.imag=x.imag-y.imag;
    show(sub);
}
void mulit(complex x,complex y){
    complex sub;
    sub.real=x.real*y.real-x.imag*y.imag;
    sub.imag=x.real*y.imag+x.imag*y.real;
    show(sub);
}
float separate_real(complex x){
    return x.real;
}
float separate_imag(complex x){
    return x.imag;
}
int main(){
    int i;
    complex a,b;
    printf("需要输入的复数个数(1或2)");
    scanf("%d",&i);
    if(i==1){
        printf("分别输入实部虚部;");
        scanf("%f%f",&a.real,&a.imag);
        printf("\n显示:a=");
        show(a);
    }
    else{
        printf("分别输入两个复数的实部虚部;");
        scanf("%f%f%f%f",&a.real,&a.imag,&b.real,&b.imag);
        printf("\n显示:a=");
        show(a);
        printf("b=");
        show(b);
        printf("\n和:a+b=");
        add(a,b);
        printf("\n差:a-b=");
        minus(a,b);
        printf("\n积:a*b=");
        mulit(a,

贴出代码。或右击以管理员身份运行。