C语言输出一串数字中的最长连号,即最多的连续的数字个数
时间: 2024-10-15 11:28:36 浏览: 29
字符串中找出连续最长的数字字符串的实例代码
在C语言中,可以使用循环和数组来解决这个问题。首先,我们需要遍历输入的数字串,记录当前连续数字的数量,并保存已知的最大连续数字长度。当遇到非连续的数字时,比较新的连续数字长度是否大于当前最大值,如果是,则更新最大值。
下面是一个简单的示例程序:
```c
#include <stdio.h>
// 函数声明
int longestConsecutive(int arr[], int n);
int main() {
int num[] = {1, 9, 3, 10, 4, 20, 5, 6, 7, 8}; // 输入的一串数字
int n = sizeof(num) / sizeof(num[0]);
int max_length = longestConsecutive(num, n);
printf("最长连续数字的个数是: %d\n", max_length);
return 0;
}
// 查找最长连续序列函数
int longestConsecutive(int arr[], int n) {
int current_count = 1; // 初始化当前连续数字计数
int max_count = 1; // 初始化最大连续数字计数
int last_num = arr[0]; // 上一个数字
for (int i = 1; i < n; i++) {
if (arr[i] == last_num + 1) {
current_count++;
} else {
if (current_count > max_count) {
max_count = current_count;
}
current_count = 1; // 从新开始计数
}
last_num = arr[i]; // 更新上一个数字
}
// 检查最后一个连续段是否超过之前找到的最大值
if (current_count > max_count) {
max_count = current_count;
}
return max_count;
}
```
运行这个程序,它会找出给定数组中最长的连续数字个数。注意,这个例子假设数字是正整数并且不会重复。如果需要处理更复杂的情况(如负数、浮点数或重复数字),算法可能需要稍作调整。
阅读全文