c语言舞伴配对问题,要求将输入数据及结果数据保存到文件中,代码没问题,就是不知道为什么无法输出数据

#include<stdio.h>#include<malloc.h>#defineNULL0typedefstructQnode//定义链表的节点{intdata;st... #include<stdio.h>
#include<malloc.h>
#define NULL 0

typedef struct Qnode //定义链表的节点
{
int data;
struct Qnode *next;
}Qnode,*Queueptr;
typedef struct //定义链表整体
{
Queueptr front;
Queueptr rear;
}Linkqueue;
void Initqueue(Linkqueue &Q) //初始化队列
{
Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode)); //申请动态内存空间
if(Q.front)
Q.front->next=NULL;
}

void Enqueue(Linkqueue &Q,int m) //入队
{
Queueptr p;
p=(Queueptr)malloc(sizeof(Qnode));
if(p)
{
p->data=m;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
else
{
printf("error");
}
}
int Dequeue(Linkqueue &Q) //出列
{
int m;
Queueptr p;
if(Q.rear!=Q.front)
{
p=Q.front->next;
m=p->data;
Q.front->next=p->next;
}
if(Q.front==p)
Q.rear=Q.front;
free(p);
return m;
}
void DeleteQueue(LinkQueue *Q)
{QueuePtr p;
for(;Q.front!=NULL;free(p))
{ p=Q.front;
Q.front=Q.front->next;
}

}

void Dance(Linkqueue M,Linkqueue W)
{
FILE *fp
fp=fopen("ytj.txt","w")
int i,m,n,k,a,b,c,d,num=0,r=0;
printf("请输入男生的数量:");
fprintf(fp,"请输入男生的数量:");
scanf("%d",&n);
fprintf(fp,"%d",&n);
printf("请输入女生的数量:");
fprintf(fp,"请输入女生的数量:");
scanf("%d",&m);
fprintf(fp,"%d",&m);
printf("请输入曲子的数量:");
fprintf(fp,"请输入曲子的数量:");
scanf("%d",&k);
fprintf(fp,"%d",&k);
printf("请输入您要查找的男生编号:");
fprintf(fp,"请输入您要查找的男生编号:");
scanf("%d",&a);
fprintf(fp,"%d",&a);
printf("请输入您要查找的女生编号:");
fprintf(fp,"请输入您要查找的女生编号:");
scanf("%d",&b);
fprintf(fp,"%d",&b);
for(i=1;i<=m;i++)
Enqueue(W,i);
for(i=1;i<=n;i++)
Enqueue(M,i);
for(i=1;i<=k;i++)
{
printf("\n\n现在正在播放第%d首曲子!\n",i);
fprintf(fp,"\n\n现在正在播放第%d首曲子!\n",i);
c=Dequeue(M);
d=Dequeue(W);
printf("现在正在跳舞的是第%d号男生和第%d号女生!\n",c,d);
fprintf(fp,"现在正在跳舞的是第%d号男生和第%d号女生!\n",c,d);
if(c==a&&b==d)
{
r=1;
num++;
printf("第%d号男生和%d号女生在第%d号曲子一起跳舞!\n",a,b,i);
fprintf(fp,"第%d号男生和%d号女生在第%d号曲子一起跳舞!\n",a,b,i);
}
Enqueue(M,c);
Enqueue(W,d);
}
if(r==0)
printf("\n您要查找的%d号男生和%d号女生没有在一起搭配跳舞!\n",a,b);
fprintf(fp,"\n您要查找的%d号男生和%d号女生没有在一起搭配跳舞!\n",a,b);
if(r==1)
printf("\n您要查找的%d号男生和%d号女生一起跳舞的次数为:%d次!\n",a,b,num);
fprintf(fp,"\n您要查找的%d号男生和%d号女生一起跳舞的次数为:%d次!\n",a,b,num);
if(fp)
{
fclose(fp);
}
fp=NULL;
}
int main()
{
Linkqueue M,W;
printf("学生搭配问题!\n\n");
Initqueue(M);
Initqueue(W);
Dance(M,W);
return 0;
}
展开
 我来答
zhangxinyu247
2016-10-26 · TA获得超过257个赞
知道小有建树答主
回答量:176
采纳率:72%
帮助的人:76.2万
展开全部
// 你的代码很多错误,我改了之后,可以正常运行
#include<stdio.h>
#include<malloc.h>
#define NULL 0

typedef struct Qnode  //定义链表的节点
{
int  data;
struct Qnode *next;
}Qnode,*Queueptr;
typedef struct  //定义链表整体
{
Queueptr front;
Queueptr rear;
}Linkqueue;
void Initqueue(Linkqueue &Q)  //初始化队列
{
Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode)); //申请动态内存空间
if(Q.front)
Q.front->next=NULL;
}

void Enqueue(Linkqueue &Q,int m) //入队
{
    Queueptr p;
p=(Queueptr)malloc(sizeof(Qnode));
if(p)
{
p->data=m;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
}
else
    {
        printf("error");
    }
}
int Dequeue(Linkqueue &Q)  //出列
{
int m;
Queueptr p;
if(Q.rear!=Q.front)
{
p=Q.front->next;
m=p->data;
Q.front->next=p->next;
}
if(Q.front==p)
Q.rear=Q.front;
free(p);
return m;
}
int DeleteQueue(Linkqueue *Q)
{Queueptr p;
  for(;Q->front!=NULL;free(p))
  {  p=Q->front;
  Q->front=Q->front->next;
}
   return 0;
}

void Dance(Linkqueue M,Linkqueue W)
{
    FILE *fp;
    fp=fopen("ytj.txt","w");
int i,m,n,k,a,b,c,d,num=0,r=0;
printf("请输入男生的数量:");
fprintf(fp,"请输入男生的数量:");
scanf("%d",&n);
fprintf(fp,"%d",n);
printf("请输入女生的数量:");
fprintf(fp,"请输入女生的数量:");
scanf("%d",&m);
fprintf(fp,"%d",m);
printf("请输入曲子的数量:");
fprintf(fp,"请输入曲子的数量:");
scanf("%d",&k);
fprintf(fp,"%d",k);
printf("请输入您要查找的男生编号:");
fprintf(fp,"请输入您要查找的男生编号:");
scanf("%d",&a);
fprintf(fp,"%d",a);
printf("请输入您要查找的女生编号:");
fprintf(fp,"请输入您要查找的女生编号:");
scanf("%d",&b);
fprintf(fp,"%d",b);
for(i=1;i<=m;i++)
Enqueue(W,i);
for(i=1;i<=n;i++)
Enqueue(M,i);
    for(i=1;i<=k;i++)
{
printf("\n\n现在正在播放第%d首曲子!\n",i);
fprintf(fp,"\n\n现在正在播放第%d首曲子!\n",i);
c=Dequeue(M);
d=Dequeue(W);
printf("现在正在跳舞的是第%d号男生和第%d号女生!\n",c,d);
fprintf(fp,"现在正在跳舞的是第%d号男生和第%d号女生!\n",c,d);
if(c==a&&b==d)
{
r=1;
num++;
printf("第%d号男生和%d号女生在第%d号曲子一起跳舞!\n",a,b,i);
fprintf(fp,"第%d号男生和%d号女生在第%d号曲子一起跳舞!\n",a,b,i);
}
Enqueue(M,c);
Enqueue(W,d);
}
if(r==0)
printf("\n您要查找的%d号男生和%d号女生没有在一起搭配跳舞!\n",a,b);
fprintf(fp,"\n您要查找的%d号男生和%d号女生没有在一起搭配跳舞!\n",a,b);
if(r==1)
printf("\n您要查找的%d号男生和%d号女生一起跳舞的次数为:%d次!\n",a,b,num);
fprintf(fp,"\n您要查找的%d号男生和%d号女生一起跳舞的次数为:%d次!\n",a,b,num);
    if(fp)
    {
        fclose(fp);
    }
    fp=NULL;
}
int main()
{
Linkqueue M,W;
printf("学生搭配问题!\n\n");
Initqueue(M);
Initqueue(W);
Dance(M,W);
return 0;
}


更多追问追答
追问
问一下你的文本文件在哪里找的?为什么我这里的打开来还是空白的
追答
在和你c文件同一个目录啊,另外你这个程序还是有漏洞的,只能处理正常输入的情况,对错误的情况是不能处理的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式