急 求c语言随机抽取姓名源码 15
随机抽取姓名可以通过文件导入。可以设置已经抽取过的是否自动屏蔽。保存抽取结果。最好有界面更好哈可输入抽取姓名个数...
随机抽取姓名可以通过文件导入。
可以设置已经抽取过的是否自动屏蔽。
保存抽取结果。
最好有界面更好哈
可输入抽取姓名个数 展开
可以设置已经抽取过的是否自动屏蔽。
保存抽取结果。
最好有界面更好哈
可输入抽取姓名个数 展开
2个回答
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct
{
char str[20]; //名字
int no; //号码
}a[99]={{" ",0}}; //初始化
int main()
{
FILE *fp;
char ch;
int i,n=0,choice,who;
fp=fopen("name.txt","r");
if(fp==NULL)
{
printf("can not open the file\n");
return 1;
}
while((ch=fgetc(fp))!=EOF)
{
if(ch=='\n')n++; //一行一个名字,计算人数
}
rewind(fp);
for(i=0;i<n;i++)
{
a[i].no=i; //每人对应的号码
fscanf(fp,"%s\n",a[i].str);
}
srand(time(NULL));
for(i=1;i<n;i++)
{
printf("=============\n1.抽取 0.退出\n=============\n");
scanf("%d",&choice);
if(choice==1)
{
loop:
who=rand()%n+1;
if(a[who].no==0)goto loop;
puts(a[who].str);
a[who].no=0; //抽取过的标志为0
}
else break;
}
fclose(fp);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询