标签:c语言
/*编写一个随机点名系统,运行该系统后,按空格键可以显示出一名同学,以前被选中的同学,将不会再次被选中*/
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <conio.h>
#include <time.h>
struct studentinfo
{
char sNo[5];
char sxueNo[14];
char sname[20];
}st[100];
int main()
{
int i=0,j=0,k,flag,RN,*a;
FILE *fp;
char ch,filename[20]={0},line[100]={0};
printf("Please input file name:");
fflush(stdin);
gets(filename);
fp=fopen(filename,"r");
printf("名单如下:\n");
while (fgets(line,sizeof(line)-1,fp))
{
if (line[0]!=‘\n‘ && line[0]!=‘ ‘)
{
sscanf(line,"%s %s %s\n",st[i].sNo,st[i].sxueNo,st[i].sname);
printf("%s\n%s\n%s\n",st[i].sNo,st[i].sxueNo,st[i].sname);
i++;
}
}
srand((unsigned)time(NULL));
a=(int*)malloc(sizeof(int)*i);
memset(a,-1,sizeof(a));
printf("按任意键点名:");
fflush(stdin);
while (!(ch=getch())==NULL)
{
RN=rand()%i;
flag=1;
for (k=0;k<i;k++)
{
if (RN==a[k])
{
flag=0;
break;
}
}
if (flag)
{
a[j]=RN;
j++;
printf("\n~~~~~\n%s\n%s\n%s\n------------\n",st[RN].sNo,st[RN].sxueNo,st[RN].sname);
}
}
}
标签:c语言
原文地址:http://blog.csdn.net/u011046042/article/details/41382821