标题:为什么增加了order()函数后,不能运行它的功能呢?
取消只看楼主
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
 问题点数:0 回复次数:1 
为什么增加了order()函数后,不能运行它的功能呢?

#include "stdio.h" #include "stdlib.h" #include "string.h" struct time { int year; int month; int day; }; struct note { char no[20]; char title[40]; char nr[200]; struct time rq; char file[20]; }kind[6]; char a=0,b=0,c=0,d=0,e=0,f=0; char m,k,loop;

void deal_menu(int nx); //菜单处理函数 void file_read(void); //读文件函数 void add_file(void); //增加函数 void del_file(void); //删除记录函数 void edit_file(void); //编辑函数 void order(void); //void search() //查寻,列出记录函数 //void count_order() //统计,排列函数

//菜单处理函数 void deal_menu(int nx) { for( ; ; ){ switch(nx) { case 1: file_read(); //读文件函数 break; case 2: add_file(); //增加函数

break; case 3: del_file(); //删除函数 break; case 4: edit_file(); //编辑函数

break; // case 5: // search(); //查寻,列出记录函数 // break; case 5: order(); //排序函数 break; } } }

//读文件函数11 void file_read(void) { char ch; char filename[80]; FILE *fp; printf("请输入要打开的文件名:(如果不行,请输入文件的绝对路径)\n"); scanf("%s",filename); if ((fp=fopen(filename,"r"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } while((ch=fgetc(fp))!=EOF) { putchar(ch); } fclose(fp); printf("\n"); ch=getchar(); }

//增加函数11 void add_file(void) { char filename[20],n[20],xx,loop; int i; int nc; FILE *fp; printf("\n请输入第几种类记录的信息:\n"); scanf("%d",&i); printf("准备第%d个类记录新增加一项内容\n",i); switch(i) { case 1: a++ ;break; case 2: b++ ;break; case 3: c++ ;break; case 4: d++ ;break; case 5: e++ ;break; case 6: f++ ;break; } //fflush(stdin);空stdin即标准输入流的缓冲区,防止它影响后面的数据输入 printf("输入序号:\n"); scanf("%s",kind[i].no); fflush(stdin);

printf("输入标题:\n"); gets(kind[i].title); fflush(stdin);

printf("输入内容:\n"); gets(kind[i].nr); fflush(stdin);

printf("输入日期\n"); scanf("%d%d%d",&(kind[i].rq.year),&(kind[i].rq.month), &(kind[i].rq.day)); fflush(stdin);

printf("输入增加的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("\n恭喜您!!成功增加记录...\n"); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //删除函数11 void del_file(void) { char n ,filename[20]; char i; FILE *fp; printf("要删除的第几类文件:\n"); scanf("%d",&n); fflush(stdin); switch(n) { case 1: a-- ;break; case 2: b-- ;break; case 3: c-- ;break; case 4: d-- ;break; case 5: e-- ;break; case 6: f-- ;break; } printf("输入删除的文件名字\n"); gets(filename); if ((fp=fopen(filename,"wb+"))==NULL) { printf ("不能打开所输入的文件\n"); exit (0); } printf("您已经成功删除!\n"); strcpy(kind[i].no," "); fflush(stdin);

strcpy(kind[i].title," "); fflush(stdin);

strcpy(kind[i].nr," "); fflush(stdin); strcpy(kind[i].rq.year," "); strcpy(kind[i].rq.month," "); strcpy(kind[i].rq.day," "); fflush(stdin); strcpy(kind[i].file," "); fflush(stdin); fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //编辑函数11 void edit_file(void) { char filename[20],c,i,j; FILE *fp; printf("修改什么类型的序号\n"); scanf("%d",&i); fflush(stdin); printf("输入序号:\n"); scanf("%s",kind[i].no); fflush(stdin); printf("输入标题:\n"); gets(kind[i].title); fflush(stdin); printf("输入内容:\n"); gets(kind[i].nr); fflush(stdin); printf("输入年\n"); scanf("%s",kind[i].rq.year); fflush(stdin); printf("输入月\n"); scanf("%s",kind[i].rq.month); fflush(stdin); printf("输入日\n"); scanf("%s",kind[i].rq.day); fflush(stdin); printf("请输入想编辑的记事本文件名字:(如果不行,请输入文件的绝对路径)\n"); gets(filename); fflush(stdin); if((fp=fopen(filename,"wb"))==NULL) //通过wb的打开方式,从而使原来的内容丢失 { printf("不能打开所输入的文件\n"); exit(0); } fwrite(&kind[i],sizeof(struct note),1,fp); fclose(fp); } //按统计并降序排列显示函数11 void order(void) { char i,j,tem; char a=6,b=5,c=4,d=2,e=1,f=4; //用来实验的,检验 char t[6]; i=0; t[i++]=a; t[i++]=b; t[i++]=c; t[i++]=d; t[i++]=e; t[i++]=f; for(i=0;i<6-1;i++) for(j=0;j<(6-i-1);j++) { if(t[j]<t[j+1]) { tem=t[j]; t[j]=t[j+1]; t[j+1]=tem; } } printf("排序结果如下:\n"); for(i=0;i<6;i++) printf("%d\n",t[i]); printf("第一类有%d条\n",a); printf("第二类有%d条\n",b); printf("第三类有%d条\n",c); printf("第四类有%d条\n",d); printf("第五类有%d条\n",e); printf("第六类有%d条\n",f); } main() { int nc; printf("姓名王盛武 学号:20041120301\n"); printf("提示:如果原来没有记录,请先增加记录\n\n"); printf("1.读取记事本文件\n"); printf("2.增加分类记事本的记录\n"); printf("3.删除分类记事本的记录\n"); printf("4.编辑分类记事本的记录\n"); printf("5.查询分类记事本的标题包含信息,并将所找到记录列出!\n"); printf("6.统计记录个分类总数,将序排列\n"); printf("7.请选择1-6:\n"); scanf("%d",&nc); deal_menu(nc); //菜单处理函数 } 为什么增加了order()函数后,不能运行它的功能呢? 原来的运行过了,行!在C-FREE中 order()函数是负责接受a b c d e f 来进行排序的

搜索更多相关主题的帖子: void 函数 order char int 
2005-01-01 17:33
想你的天空
Rank: 2
等 级:新手上路
威 望:5
帖 子:610
专家分:0
注 册:2004-12-30
得分:0 
对不起,小弟懂了,调通了, 不好意思

2005-01-01 19:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10482-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050092 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved