喵宅苑 MewoGarden × 技术宅社区II | Z站 Z Station 棒棒哒纯文字二次元技术社区

正文

编译没有错,运行强制停止,什么问题?

作者:矛盾
[i=s] 本帖最后由 绯色の胖子 于 2015-6-12 18:10 编辑 大神们,这个程序编译没有错,运行强制停止,什么问题?运行的时候 点5 就是 添加后报道的学生 只要是添加 就出错停止运行 #include <stdlib.h> #include <stdio.h> #include <math.h> #include <conio.h> #include <string.h> #define SIZE 7 struct student {char num[20]; char name[10]; char time; }std[SIZE]; void menu(); void dianming(); void absent(); void add(); void save(); void main() { int i,k; FILE *fp; if((fp=fopen("e:\\file20.txt","r"))==NULL) { printf("文件打开失败\n"); exit(0); } for(i=0;i<SIZE;i++) fscanf(fp,"%s %s %c",std.num,std.name,&std.time); printf("**************************************************************************\n"); printf("**************************************************************************\n"); printf("****************************欢迎使用上课随机点名程序**********************\n"); printf("****** 输入1:显示所有同学点名情况 *********\n"); printf("****** 输入2:开始点名 *********\n"); printf("****** 输入3:更新文件 *********\n"); printf("****** 输入4:缺席同学的情况 *********\n"); printf("****** 输入5:添加后报道学生信息 *********\n"); printf("****** 输入6: 退出 *********\n"); printf("**************************************************************************\n"); while(1) {printf("please choose "); scanf("%d",&k); switch(k) { case 1: printf("number name Y or N\n"); for(i=0;i<SIZE;i++) printf(" %s %s %c\n",std.num,std.name,std.time); break; case 2: dianming(); break; case 3: save(); printf("****************************文件更新成功!退出请按5**************************\n"); break; case 4: absent(); break; case 5: /*添加学生信息*/add(); break; case 6: exit(0); } fclose(fp); } } void add() { FILE *fp; int n,i; struct student stu; if((fp=fopen("e:\\file20.txt","a"))==NULL) { printf("文件打开失败\n"); exit(0); } else //如果文件已经存在,可以追加学生信息 {printf("请输入要添加的学生数量,按回车键确认:"); scanf("%d",&n); for(i=1;i<=n;i++) { printf("\n请输入第%d个学生的学号 姓名 缺席情况,用空格分开,并按回车键确认:\n",i); scanf("%s%s",stu.num,stu.name); fprintf(fp,"%s %s %s\n",stu.num,stu.name,stu.time); } } fclose(fp); } void dianming() {int n,j,m; printf("请输入数量:"); scanf("%d",&n); j=rand()%7;/*调用rand函数进行点名*/ for(j=0;j<n;j++) { printf(" %s %s ",std[j].num,std[j].name); printf("缺席请按1否则请按2:"); scanf("%d",&m); if(m==1) std[j].time='Y'; else if(m==2) printf("没有缺席");} } void absent() {int i; for(i=0;i<SIZE;i++) if(std.time!='N') printf(" %s %s %c\n",std.num,std.name,std.time); } void save() {int i; FILE *fp; if((fp=fopen("e:\\file20.txt","w+"))==NULL) {printf("文件打开失败\n"); exit(0);} for(i=0;i<SIZE;i++) {fprintf(fp,"%s %s %c\n",std.num,std.name,std.time); }}

回复

0%
站点地图友情链接:
喵宅苑
喵空间社区程序
喵宅苑 静态版
宅喵RPG地图编辑器
络合兔
Lanzainc
技术宅
小五四博客
莉可POI
Mithril.js
枫の主题社
Project1
午后少年
机智库
七濑胡桃
xiuno
幻想の日常
魂研社
Nothentai
0xffff
欲望之花
泽泽社长
淀粉月刊
HAYOU
红客联盟
异次元
轻之国度
神奇宝贝新生代
游戏狗
口袋双子星
我的世界论坛
梦次元
动漫东东
动漫国际
精艺论坛
78动漫
吐槽弹幕网
漫客栈