纯粹的热爱 2022-11-07 18:37 采纳率: 60%
浏览 38

添加代码,满足程序要求

问题遇到的现象和发生背景

如何改变这个代码,将输入0为结束标志以满足题目要求;
题目;电视节目安排
领导给小吴安排了一个任务,要求小吴把明天电视节目排列上映,小吴要尽可
能的安排最多的节目。节目开始 start 和结束时间 end(0<=start<end<=23)。
【输入格式:】
输入数据包含多个测试实例,每个测试实例的第一行只有一个整数 n(n≤100),
表示喜欢看的节目的总数,然后是 n 行数据,每行包括两个数据 start_i,end_i,分
别表示第 i 个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表
示。n=0 表示输入结束,不做处理。_
【输出格式:】
对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出
占一行。
输入样例:
在这里给出一组输入。例如:
12
1 3
3 4
0 7
3 8
15 / 26
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0
输出样例:5
在这里给出相应的输出。例如:

用代码块功能插入代码,请勿粘贴截图

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//取活动时间结束最早的的,作为最先选择的元素
int n;
void px(int* a, int* b );
void Choose(int len, int* s, int* f);
int sum = 1;//排好后最早结束的节目必选
int main()
{

scanf("%d", &n);
int s[101], e[101];
for (int i = 0; i < n; i++) {
    scanf("%d %d", &s[i], &e[i]);
}
px(e,s);//按照结束时间从小到大排序
Choose(n,s,e);
printf("%d", sum);
return 0;

}
void px(int* a,int* b ) {

for (int i = 0; i < n; i++)
    for (int j = 0; j < n - 1 - i; j++)
        if (a[j + 1] < a[j]) {
            int temp = a[j + 1];
            a[j + 1] = a[j];
            a[j] = temp;
            int t = b[j + 1];
            b[j + 1] = b[j];
            b[j] = t;
        }

}
void Choose(int len, int* s, int* e)//核心代码
{

int j = 0;
for (int i = 1; i < len; ++i)
    if (s[i] >= e[j])
    {
        sum++;
        j = i;
    }

}

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-07 20:47
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月7日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22