scanf("%s%s%lf%lf%lf",c[i].a,c[i].b,&c[i].one,&c[i].two,&c[i].three);你这句有问题,比如这个c[i].one,这个相当于一个变量,你可以给它赋值,而&c[i].one是变量的地址,你怎么能修改地址呢。很明显会segmentfault呀