这个程序哪里有问题了,C语言,好奇怪
满意回答
修改如乡患迷下,排序部分哑厉的修改较大,程序的其它部分也有少量的修改今缘: //--------------------------------------------------------------------------- #include #define M 1000 void main() { struct chain { int num; struct chain *next; } C; FILE *fp=fopen("data.txt","r"); int i,j,m=0; struct chain *p,*q,*min=NULL; for(i=0;!feof(fp);i++) { fscanf(fp,"%d",&(C.num)); C.next=NULL; if (++m>=M) break; } fclose(fp); for (i = 0; inext==NULL) { p->next =p; if (!min) q=min=p; else { q->next=p; q=p; } } } q->next =NULL; for(;min;){ printf("%d\t",min->num); min=min->next; } } //---------------------------------------------------------------------------
为您推荐:
其他回答
/******* 首先我指出你程序里的几个问题. 1,你在文件中读取数据的时候没有考虑文件结尾的问题,导致你读取失败. 2,你把读取的第一个数据做为最小的数,这对吗??? 3,当你对他们进行排序的时候,不能像你那样排. 我这个程序现在还不能处理相等的数,你如果想处理的话,在你的struct结构体里面...
排序算法错的。你的算法只是把每个比C小的各元素的链接指向首个元素,比C ->C C ->C ... ->C C ->C 其余C next置为NULL。 连C ... C都没排过序 其它更没有 还是好好再学学算法吧