c语言 课堂随机点名程序 跪求大神帮我修改正确!

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>func1(charstubuf... #include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <time.h>
func1(char stubuff[100][100] int stucnt);
func2(char stubuff[100][100] int stucnt);
struct Student
{
int stdno;
char name[20];
char sex[20];
};
main()
{
FILE *fp;
int stucnt=0,x;
char line[100]="\0",stubuff[100][100];
char filename[20];
struct Student *st;
printf("\t\t\t欢迎使用课堂随机点名程序!\n\n");
printf("点名前请输入您要点名的班级:");
scanf("%s",filename);
fp=fopen(filename,"r");
while (fgets(line,99,fp)!=NULL)
{
strcpy(stubuff[stucnt++],line);
}
printf("该班一共有%d个学生\n",stucnt);

srand((unsigned)time(NULL));
printf("请选择:\n");
printf("1:开始点名\n2:查看全班具体情况\n3:结束程序\n");
printf("请输入您的选择:");
scanf("%d",&x);
switch(x)
{
case 1:
func1(stybuff[][],stucnt);break;
case 2:
func2();break;
case 3:
printf("\t\t\t谢谢使用!\n");
}
fclose(fp);
return 0;
}

func1(char stubuff[100][100] int stucnt)
{
int i,j,chou,tmp,sel[100]={0},flag;
do
{
printf("请输入这次要点名的人数:");
scanf("%d",&chou);
if (chou>stucnt)
{
printf("这个班没有这么多学生\n");
}
} while(chou>stucnt ||chou<0);

for (i=0;i<chou;i++)
{
flag=0;
tmp=rand()%stucnt+1;
for (j=0;j<i;j++)
{
if (sel[j]==tmp)
{
flag=1;
break;
}
}
if (flag==1)
{
i--;
}else
{
sel[i]=tmp;
}
}
printf("点名情况如下:\n");
printf("学号\t\t姓名\t性别\n");
for (i=0;i<chou;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[sel[i]-1]);
}
}

func2(char stubuff[100][100] int stucnt)
{
int i;
for (i=0;i<stucnt;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[i]);
}
}
展开
 我来答
a1012144015
2015-07-04 · TA获得超过6415个赞
知道大有可为答主
回答量:9038
采纳率:40%
帮助的人:1360万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <time.h>
func1(char stubuff[100][100],int stucnt);
func2(char stubuff[100][100],int stucnt);
struct Student
{
int stdno;
char name[20];
char sex[20];
};
int main()
{
FILE *fp;
int stucnt=0,x;
char line[100]="\0",stubuff[100][100];
char filename[20];
struct Student *st;
printf("\t\t\t欢迎使用课堂随机点名程序!\n\n");
printf("点名前请输入您要点名的班级:");
scanf("%s",filename);
fp=fopen(filename,"r");
while (fgets(line,99,fp)!=NULL)
{
strcpy(stubuff[stucnt++],line);
}
printf("该班一共有%d个学生\n",stucnt);

srand((unsigned)time(NULL));
printf("请选择:\n");
printf("1:开始点名\n2:查看全班具体情况\n3:结束程序\n");
printf("请输入您的选择:");
scanf("%d",&x);
switch(x)
{
case 1:
func1(stubuff[100][100],stucnt);break;
case 2:
func2(stubuff[100][100],stucnt);break;
case 3:
printf("\t\t\t谢谢使用!\n");
}
fclose(fp);
return 0;
}

func1(char stubuff[100][100],int stucnt)
{
int i,j,chou,tmp,sel[100]={0},flag;
do
{
printf("请输入这次要点名的人数:");
scanf("%d",&chou);
if (chou>stucnt)
{
printf("这个班没有这么多学生\n");
}
} while(chou>stucnt ||chou<0);

for (i=0;i<chou;i++)
{
flag=0;
tmp=rand()%stucnt+1;
for (j=0;j<i;j++)
{
if (sel[j]==tmp)
{
flag=1;
break;
}
}
if (flag==1)
{
i--;
}else
{
sel[i]=tmp;
}
}
printf("点名情况如下:\n");
printf("学号\t\t姓名\t性别\n");
for (i=0;i<chou;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[sel[i]-1]);
}
}

func2(char stubuff[100][100],int stucnt)
{
int i;
for (i=0;i<stucnt;i++)
{
fflush(stdin);
getchar();
printf("%s",stubuff[i]);
}
}
追问
当要点名的时候就出现问题了,他显示不了文件的内容
追答
你的文件没内容呀
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式