博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c 实现对文件操作:选择排序
阅读量:5750 次
发布时间:2019-06-18

本文共 2193 字,大约阅读时间需要 7 分钟。

分别实现选择排序和冒泡排序(在上上篇文章)对以下文件进行排序。

支持如下形式调用:BubbleSort.exe input.txt output.txt 0
                                    BubbleSort.exe input.txt output.txt 1
                                     (0:从小到大,1:从大到小)。
注意中文处理(若无法处理可以只对学号排序,需要在文档中说明)

1 #include
2 #include
3 #include
4 5 #define N 200 6 struct student{ 7 char num[200]; 8 char name[200]; 9 float ave;10 }st[N],temp1;11 12 struct Newstudent{13 char num[200];14 char name[200];15 char row[200];16 float ave;17 }st_New[N],temp2;18 19 //void SelectionSort();20 21 22 void main(int argc,char **argv){23 FILE *fp1,*fp2;24 int i,j,sum,min;25 char str[200];26 char *input,*output,flag;27 char tempOne[200];28 char tempTwo[200];29 //char *str[N];30 31 if(argc<4){32 input="input.txt";33 output="output.txt";34 flag='0';35 }36 else{37 input=*(argv+1);38 output=*(argv+2);39 flag=**(argv+3);40 }41 42 /*读文件*/43 if((fp1=fopen("input.txt","r"))==NULL){44 printf("can not open.");45 exit(0);46 }47 sum=0;48 printf("the File '算法设计点名册' is :\n");49 50 for(i=0;(fgets(str,200,fp1))!= NULL;i++,sum++) {51 strcpy(st[i].num,strtok(str,","));52 strcpy(st[i].name,strtok(NULL,","));53 //printf("%s",st[i].num);54 //printf("%s",st[i].name);55 }56 //printf("如果希望从小到大排列请输入0,如果希望从大到小排列请输入1:\n");57 //scanf("%d",&flag);58 /*选择排序*/59 for(i=0;i<193;i++){60 min=i;61 for(j=i+1;j<194;j++)62 if(flag){63 if(strcmp(st[j].num,st[min].num)>0)64 min=j;65 }66 else{67 if(strcmp(st[j].num,st[min].num)<0)68 min=j;69 }70 strcpy(tempOne,st[i].num);71 strcpy(st[i].num,st[min].num);72 strcpy(st[min].num,tempOne);//互换值73 74 strcpy(tempTwo,st[i].name);75 strcpy(st[i].name,st[min].name);76 strcpy(st[min].name,tempTwo);//互换值77 }78 79 /*写入新文件*/80 if((fp2=fopen("output.txt","wb"))==NULL){81 printf("can not open.");82 exit(0);83 }84 for(j=0;j

 

 

转载于:https://www.cnblogs.com/daomul/archive/2012/10/16/2726957.html

你可能感兴趣的文章
排序高级之交换排序_冒泡排序
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
中小型网站架构分析及优化
查看>>
写shell的事情
查看>>
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>