#include<stdio.h> #include<stdlib.h> struct Act{ int start; int end; }act[1000]; void sort(Act act[],int n); int explore(Act act[],int n); int main() { int n; scanf("%d",&n); int i=0; for(i=0;i<n;i++) { scanf("%d %d",&act[i].start,&act[i].end); } sort(act,n); int num=explore(act,n); printf("一天中选择可进行活动最大的数量为:%d\n",num); return 0; } void sort(Act act[],int n) { for(int i=0;i<n;i++) { for(int j=0;j<n-i-1;j++) { if(act[j].end>act[j+1].end) { Act temp=act[j]; act[j]=act[j+1]; act[j+1]=temp; } } } } int explore(Act act[],int n) { int result=1; for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { if(act[i].end<act[j].start) { result++; i=j; } } } return result; }加入几行代码看出是哪几个活动被选中
时间: 2024-02-05 08:03:03 浏览: 48
C标准库函数集
5星 · 资源好评率100%
可以在explore函数中加入如下代码来输出被选中的活动:
```c
int explore(Act act[],int n) {
int result=1;
printf("选中的活动编号为:1 ");
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(act[i].end<act[j].start)
{
result++;
printf("%d ", j+1); // j+1即为选中的活动编号
i=j;
}
}
}
printf("\n");
return result;
}
```
在输出结果中会打印出被选中的活动的编号。
阅读全文