C语言编程题 在X轴上给你一些线段,问被这些线段覆盖的区间长。
答案:1 悬赏:10
解决时间 2021-01-15 15:35
- 提问者网友:我没有何以琛的痴心不悔
- 2021-01-15 00:33
C语言编程题 在X轴上给你一些线段,问被这些线段覆盖的区间长。
最佳答案
- 二级知识专家网友:不如潦草
- 2021-01-15 01:12
#include
#include
#include
#define N 10000
typedef struct{
int head;
int nail;
} NODE;
NODE a[N];
int n;
int cmp(const void *a,const void *b){
return ((NODE*)a)->head - ((NODE*)b)->head;
}
int main ()
{
scanf("%d",&n);
while(n!=0){
int i;
for(i=0;i scanf("%d%d",&a[i].head,&a[i].nail);
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i while(a[i].nail>a[i+1].head){
if(a[i].nail>a[i+1].nail){
a[i+1].head = a[i].head,a[i+1].nail = a[i].nail;
//a[i].nail = a[i].head;
}else{
a[i+1].head = a[i].head;
}
a[i].nail = a[i].head;
i++;
}
}
int sum = 0;
for(i=0;i printf("%d
",sum);
scanf("%d",&n);
}
return 0;
}这样就可以了
追问:初学者,等我慢慢研究之后再给你答复,如有问题请多指教,谢谢。
#include
#include
#define N 10000
typedef struct{
int head;
int nail;
} NODE;
NODE a[N];
int n;
int cmp(const void *a,const void *b){
return ((NODE*)a)->head - ((NODE*)b)->head;
}
int main ()
{
scanf("%d",&n);
while(n!=0){
int i;
for(i=0;i
qsort(a,n,sizeof(a[0]),cmp);
for(i=0;i
if(a[i].nail>a[i+1].nail){
a[i+1].head = a[i].head,a[i+1].nail = a[i].nail;
//a[i].nail = a[i].head;
}else{
a[i+1].head = a[i].head;
}
a[i].nail = a[i].head;
i++;
}
}
int sum = 0;
for(i=0;i
",sum);
scanf("%d",&n);
}
return 0;
}这样就可以了
追问:初学者,等我慢慢研究之后再给你答复,如有问题请多指教,谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息