printf("现将物资信息按采购人的名字进行排序(名字相同放一起)。\n"); for(i=0;i<7;i++){ for(q=0;q<7-i;q++){ if(i!=q){ strcpy(f,"0"); strcpy(u,"0"); strcpy(p,"0"); t=0,e=0; if(strcmp(s[i].cosumer,s[q].cosumer)==0){ strcpy(f,s[q].cosumer); strcpy(s[q].cosumer,s[i-1].cosumer); strcpy(s[i-1].cosumer,f); strcpy(u,s[q].goods); strcpy(s[q].goods,s[i-1].goods); strcpy(s[i-1].goods,u); strcpy(a,s[q].num); strcpy(s[q].num,s[i-1].num); strcpy(s[i-1].num,a); t=s[q].count; s[q].count=s[i-1].count; s[i-1].count=t; t=s[i].count; s[q].count=s[i-1].count; s[i-1].count=t; e=s[q].price; s[q].price=s[i-1].price; s[i-1].price=e; } } } } printf("现将您修改后的物资信息进行重新保存,请输入重新保存的文件名:"); scanf("%s",filename_j); if((fp=fopen(filename_j,"w+"))==NULL){ printf("无法打开此文件\n"); exit(0); }
时间: 2024-03-31 11:36:44 浏览: 54
修改物料主数据
这段代码看起来像是对一个物资清单进行排序和保存操作。具体来说,它使用了冒泡排序的方式,按照采购人的名字对物资信息进行排序(如果名字相同,则将它们放在一起)。排序过程中,对于每一对需要比较的记录,如果它们的采购人名字相同,则交换它们的顺序。最后,它会要求用户输入一个新的文件名,将排序后的物资信息重新保存到该文件中。
但是,这段代码存在一些问题,比如没有对输入的文件名进行合法性检测,没有对文件操作的返回值进行检测,等等。在实际应用中,需要对这些问题进行处理,以保证程序的健壮性和可靠性。
阅读全文