一个随机点名系统
程序代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> #include<conio.h> struct student { char Name[10]; char NO[15]; char Sex[2]; }stu[110]; char hhh[110]={0}; int main() { int i=0,j=0,flag=0,RN,*a; FILE *fp; char ch,filename[20]={0},line[110]={0}; printf("请输入保存学生数据的文本:"); gets(filename); fp=fopen(filename,"r"); printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("名单如下:\n"); printf("姓名\t 学号\t性别\n"); while(fgets(line,sizeof(line)-1,fp)) { if(line[0]!='\0'&&line[0]!=' ') { sscanf(line,"%s %s %s",stu[i].Name,stu[i].NO,stu[i].Sex); printf("%s\t%s\t%s\n",stu[i].Name,stu[i].NO,stu[i].Sex); i++; } } printf("三个班共有%d名学生\n",i); srand((unsigned)time(NULL)); a=(int*)malloc(sizeof(int)*i); memset(a,0,sizeof(a)); printf("按空格键点名,其他键退出:"); fflush(stdin); while((ch=getch())==' ') { if(flag==i) { printf("点名结束"); break; } RN=rand()%i; while(hhh[RN]==1) { RN=rand()%i; flag++; printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n%s\t%s\t%s\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n",\ stu[RN].Name,stu[RN].NO,stu[RN].Sex); hhh[RN]=1; } } }
我从文本中读入学生数据后,再按空格进行随机挑选时没反应,怎么回事?
[此贴子已经被作者于2017-2-22 09:01编辑过]