循环判断计数的问题

zhq1001 2018-08-06 01:42:34
一组数值:59,27,44,66,44,34,3,9,4,........

依次统计,大于 lq=25,hq=41,bq = 51的连续次数,小于lq则break 则终止

此组数值的返回值:6,1, 1

该怎么写代码呢?谢谢
...全文
219 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chrisfrog 2018-08-06
  • 打赏
  • 举报
回复
引用 7 楼 zhq1001 的回复:
[quote=引用 5 楼 xuzuning 的回复:]
            var a = new int[] { 59, 27, 44, 66, 44, 34, 3, 9, 4 };
var d = new int[] { 25, 41, 51 };
var r = new int[d.Length];
var t = new int[d.Length];
for (var i = 0; i < a.Length; i++)
{
for (var k = 0; k < d.Length; k++)
{
if (a[i] >= d[k]) t[k]++;
else
{
r[k] = Math.Max(r[k], t[k]);
t[k] = 0;
// if (k == 0) break;
}
}
}
Console.WriteLine(string.Join(", ", r));


初学者的我,看不懂呀,老师,如果,必须用 if 语句,嵌套判断呢?[/quote]你这个是需要遍历数组的怎么用if?假如你的数组里面元素个数1000个你写1000个if?
IEEE_China 2018-08-06
  • 打赏
  • 举报
回复
这样?

var a = new int[] { 59, 27, 44, 66, 44, 34, 3, 9, 4 };
int lq = 25;
int hq = 41;
int bq = 51;
int lx_lq = 0;
int lx_hq = 0;
int lx_bq = 0;
for (var i = 0; i < a.Length; i++)
{
if (a[i] < lq)
{
break;
}
if (a[i] >= lq)
{
lx_lq++;
}
if (a[i] >= hq)
{
lx_hq++;
}
if (a[i] >= bq)
{
lx_bq++;
}
}
Console.WriteLine("lx_lq:{0};lx_hq:{1};lx_bq:{2};", lx_lq, lx_hq, lx_bq);
zhq1001 2018-08-06
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
            var a = new int[] { 59, 27, 44, 66, 44, 34, 3, 9, 4 };
var d = new int[] { 25, 41, 51 };
var r = new int[d.Length];
var t = new int[d.Length];
for (var i = 0; i < a.Length; i++)
{
for (var k = 0; k < d.Length; k++)
{
if (a[i] >= d[k]) t[k]++;
else
{
r[k] = Math.Max(r[k], t[k]);
t[k] = 0;
// if (k == 0) break;
}
}
}
Console.WriteLine(string.Join(", ", r));


初学者的我,看不懂呀,老师,如果,必须用 if 语句,嵌套判断呢?
jhone99 2018-08-06
  • 打赏
  • 举报
回复
你的描述和结果对不上,
xuzuning 2018-08-06
  • 打赏
  • 举报
回复
            var a = new int[] { 59, 27, 44, 66, 44, 34, 3, 9, 4 };
var d = new int[] { 25, 41, 51 };
var r = new int[d.Length];
var t = new int[d.Length];
for (var i = 0; i < a.Length; i++)
{
for (var k = 0; k < d.Length; k++)
{
if (a[i] >= d[k]) t[k]++;
else
{
r[k] = Math.Max(r[k], t[k]);
t[k] = 0;
// if (k == 0) break;
}
}
}
Console.WriteLine(string.Join(", ", r));
正怒月神 2018-08-06
  • 打赏
  • 举报
回复
没明白什么意思。。。。。
zhq1001 2018-08-06
  • 打赏
  • 举报
回复
引用 2 楼 hanjun0612 的回复:
没明白什么意思。。。。。


统计 从左到右,依次,大于lq hq bq 的连续次数
zhq1001 2018-08-06
  • 打赏
  • 举报
回复
初始,

int lx_lq = 0;
int lx_hq =0;
int lx_bq =0;

此例的结果是 lx_lq = 6; lx_hq = 1; lx_bq = 1
zhq1001 2018-08-06
  • 打赏
  • 举报
回复
我用 if 语句,套来套去,糊涂了,有简单的办法吗?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧