AC代码
1、用了结构体和比较函数
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
struct t{
int x;
int y;
}num[200];
bool cmp(t u,t v){
return u.y<v.y;
}
int main(){
int n;
while(cin>>n){
if(n==0)
break;
for(int i=1;i<=n;i++)
cin>>num[i].x>>num[i].y;
sort(num+1,num+1+n,cmp);
int count=0;
int last=1;
for(int i=2;i<=n;i++){
if(num[last].y<=num[i].x){
last=i;
count++;
}
}
cout<<count+1<<endl;;
}
return 0;
}
2、
#include<iostream>
using namespace std;
int main(){
int n,t;
int a[100],b[100];
while(1){
cin>>n;
if(n==0)
break;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
}//输入
//用冒泡排序根据结束时间进行从小到大排序
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i-1;j++){
if(b[j]>b[j+1]){
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t; }
}
}
//-----排序结束-----
int last=1;//last指向满足条件的位置
int count=0;
for(int i=1;i<=n;i++){
if(b[last]<=a[i])
{
last=i;
count++;
}
}/*统计比结束时间晚的个数*/
/*int i=1;
int j=1;
int count=0;
while(i<n){
if(b[j]<=a[i]){
j=i;
count++;
}
else{
i++
}
}while来实现查找*/
cout<<count+1<<endl;
}
return 0;
}
注:最后count加1 是因为还有最后一个节目,刚开始因为这个错了