用C语言或者Java写出代码,输入 输入数据包含多个测试实例,每个测试实例的第一行只有一个整数n(n<=100),表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。n=0表示输入结束,不做处理。 输出 对于每个测试实例,输出能完整看到的电视节目的个数,每个测试实例的输出占一行。 样例输入 Copy 12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0 样例输出 Copy 5
时间: 2023-07-15 10:12:17 浏览: 72
C语言输入一个整数序列并计算他们的值.rar_C语言输入一个整数序列并计算他们的值_输入序列C语言
5星 · 资源好评率100%
C语言代码实现:
```c
#include <stdio.h>
int main() {
int n, i, j, count;
int start[105], end[105];
while (scanf("%d", &n) == 1 && n != 0) {
for (i = 0; i < n; i++) {
scanf("%d%d", &start[i], &end[i]);
}
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (end[i] > end[j]) {
int temp = end[i];
end[i] = end[j];
end[j] = temp;
temp = start[i];
start[i] = start[j];
start[j] = temp;
}
}
}
count = 1;
int lastEnd = end[0];
for (i = 1; i < n; i++) {
if (start[i] >= lastEnd) {
count++;
lastEnd = end[i];
}
}
printf("%d\n", count);
}
return 0;
}
```
Java代码实现:
```java
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n, i, j, count;
int[] start = new int[105];
int[] end = new int[105];
while ((n = scanner.nextInt()) != 0) {
for (i = 0; i < n; i++) {
start[i] = scanner.nextInt();
end[i] = scanner.nextInt();
}
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (end[i] > end[j]) {
int temp = end[i];
end[i] = end[j];
end[j] = temp;
temp = start[i];
start[i] = start[j];
start[j] = temp;
}
}
}
count = 1;
int lastEnd = end[0];
for (i = 1; i < n; i++) {
if (start[i] >= lastEnd) {
count++;
lastEnd = end[i];
}
}
System.out.println(count);
}
}
}
```
阅读全文