一道C语言竞赛题目,老师要做,很急,求详解!!
答案:2 悬赏:70 手机版
解决时间 2021-04-02 02:49
- 提问者网友:心如荒岛囚我终老
- 2021-04-01 21:25
一道C语言竞赛题目,老师要做,很急,求详解!!
最佳答案
- 五星知识达人网友:煞尾
- 2021-04-01 21:35
#include
#include
#include
struct Yy{
int ct; //冲突默认为1代表有冲突,为0代表无冲突
char s[40]; //设s引用d
char d[40];
};
int findit(char *s,struct Yy *y,int m){ //检查s是不是末位引用
int i;
for(i=0;i if (y[i].ct==0) continue;
if (strcmp(s,y[i].s)==0) return 1;
}
return 0;
}
//void printit(struct Yy *y,int m){ //用于打印测试过程
// int i;
// for(i=0;i // printf("%d %s %s
",y[i].ct,y[i].s,y[i].d);
// printf("
");
//}
int ctjc(struct Yy *y,int m){ //冲突检测,有冲突返回1,否则返回0
int i,count1=0,count2=0;
for(i=0;i while(count1!=count2){
count1=count2;count2=0;
for(i=0;i if(findit(y[i].d,y,m)==0) y[i].ct=0; //检查是不是末位引用
for(i=0;i }
if (count1==0) return 0; else return 1;
}
int main(){
int i,j,n,m,*a;
FILE *fp;
struct Yy *y;
scanf("%d",&n); //输入共有n组数据
a=(int *)malloc(sizeof(int)*n);
for(i=0;i scanf("%d",&m); //获取一组数据有多少个引用
y=(struct Yy *)malloc(sizeof(struct Yy)*m);
for(j=0;j scanf("%s%s",y[j].s,y[j].d);
y[j].ct=1;
}
a[i]=ctjc(y,m);
//printit(y,m);
free(y);
}
for(i=0;i
",a[i]==1?"Failed":"Passed");
}
#include
#include
struct Yy{
int ct; //冲突默认为1代表有冲突,为0代表无冲突
char s[40]; //设s引用d
char d[40];
};
int findit(char *s,struct Yy *y,int m){ //检查s是不是末位引用
int i;
for(i=0;i
if (strcmp(s,y[i].s)==0) return 1;
}
return 0;
}
//void printit(struct Yy *y,int m){ //用于打印测试过程
// int i;
// for(i=0;i
",y[i].ct,y[i].s,y[i].d);
// printf("
");
//}
int ctjc(struct Yy *y,int m){ //冲突检测,有冲突返回1,否则返回0
int i,count1=0,count2=0;
for(i=0;i
count1=count2;count2=0;
for(i=0;i
for(i=0;i
if (count1==0) return 0; else return 1;
}
int main(){
int i,j,n,m,*a;
FILE *fp;
struct Yy *y;
scanf("%d",&n); //输入共有n组数据
a=(int *)malloc(sizeof(int)*n);
for(i=0;i
y=(struct Yy *)malloc(sizeof(struct Yy)*m);
for(j=0;j
y[j].ct=1;
}
a[i]=ctjc(y,m);
//printit(y,m);
free(y);
}
for(i=0;i
}
全部回答
- 1楼网友:拜訪者
- 2021-04-01 21:55
啥事要啊 我能写这个
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯