【问题描述】定义一个数组存储n个整数,并统计n个正整数组成的序列中连续相同数字的段数。 【输入形式】先输入一个正整数n,再依次输入n个正整数 【输出形式】输出段数C语言
时间: 2023-11-29 20:04:56 浏览: 59
Minimal m Sums 给定n 个整数组成的序列,现在要求将序列分割为m 段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小?
4星 · 用户满意度95%
实现方式如下:
```
#include <stdio.h>
int main()
{
int n, i, count = 1;
int nums[100];
// 读入n个整
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &nums[i]);
}
// 统计连续相同数字的段数
for(i = 1; i < n; i++)
{
if(nums[i] == nums[i-1])
{
count++;
}
else
{
printf("%d ", count);
count = 1;
}
}
// 输出最后一段相同数字的段数
printf("%d\n", count);
return 0;
}
```
输入样例:
```
10
1 2 2 3 3 3 4 4 4 4
```
输出样例:
```
1 2 3 4
```
解释:
输入的10个整数为{1,2,2,3,3,3,4,4,4,4},其中连续相同数字的段数依次为1、2、3、4。
阅读全文