数组的比较(C#)来着有分 2.1, 4.3, 2.2, 3.75, 4.4,6.24这样的数小大小大小大排列或大小大小大小排列能连续14个以上就输出 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 static void Main(string[] args) { decimal[] array ={ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, }; int num = check(array); switch (num) { case 0: Console.WriteLine("daxiao"); break; case 1: Console.WriteLine("xiaoda"); break; case 2: Console.WriteLine("error"); break; } } private static int check(decimal[] array) { bool daxiao = true; bool xiaoda = true; if (array.Length > 14 * 2) { for (int i = 0; i < 14 * 2; i += 2) if (array[i] < array[i + 1]) { daxiao = false; } else if (array[i] > array[i + 1]) { xiaoda = false; } } if(daxiao) return 0; if(xiaoda) return 1; return 2; } 这个应该可以 比如 1 3 2 4 3 5 4 6分成 1 2 3 4和 3 4 5 6 两个数组 从索引 0 开始 比较两个数组相同位置的值 连续 > 或者 < 达到14 个 即满足条件 上面引用 错了 sorry 看这个ok不?double[] arr = new double[]{4.3, 2.1, 2.2, 6.24 , 4.4, 3.75 }; double temp = 0; for (int i = 0; i < arr.Length-1; i++) { if (arr[i]>arr[i+1]) { temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; } i++; } foreach (double d in arr) { Console.WriteLine(d); } static void Main(string[] args) { decimal[] array ={ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, }; int num = check(array); switch (num) { case 0: Console.WriteLine("daxiao"); break; case 1: Console.WriteLine("xiaoda"); break; case 2: Console.WriteLine("error"); break; } } private static int check(decimal[] array) { bool daxiao = true; bool xiaoda = true; if (array.Length > 14 * 2) { for (int i = 0; i < 14 * 2; i += 2) if (array[i] < array[i + 1]) { daxiao = false; } else if (array[i] > array[i + 1]) { xiaoda = false; } } if(daxiao) return 0; if(xiaoda) return 1; return 2; }能把数都输出不? 第一步:判断数组的length <28 就不继续了第二步:数组从小到大排序第二步:使用for循环 for(int i=0;i<arr.length-1;i++) { if(arr[i]==arr[i+1]) { arr.Remove[i] //如果相邻的两个数大小相等则 移除一个。(从小到大排序后,相等的数去 掉) } }第四步:从小到大排序 并且去掉了相邻的大小相等的数,那么再判断数组的长度大于28则符合要求,小于28则不和要求 double[] Arr = new double[] { 1.3, 8.1, 7.2, 8.24, 4.4, 7.75, 5.6, 9.2, 2.5, 3.2, 2, 3, 2, 5}; string StrTemp=""; int count = 0;//记录合法的次数 for (int i = 0; i < Arr.Length; i++) { if (i == 0) { if (Arr[i] < Arr[i + 1]) { i += 2; count++; if (Arr[i] < Arr[i - 1]) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } else { count = 0; } } else { i ++; } } else { if (Arr[i] < Arr[i - 1]) { if (i != Arr.Length-1) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } } } if (i == 3) { StrTemp = Arr[i - 1].ToString(); } } //if (count == 6) //{ // Label1.Text = count.ToString(); //} Label1.Text = count.ToString(); Label2.Text = StrTemp;这样结果是 连续7次小大 double[] Arr = new double[] { 1.3, 8.1, 7.2, 8.24, 4.4, 7.75, 5.6, 9.2, 2.5, 3.2, 2, 3, 2, 5}; string StrTemp=""; int count = 0;//记录合法的次数 for (int i = 0; i < Arr.Length; i++) { if (i == 0) { if (Arr[i] < Arr[i + 1]) { i += 2; count++; if (Arr[i] < Arr[i - 1]) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } else { count = 0; } } else { i ++; } } else { if (Arr[i] < Arr[i - 1]) { if (i != Arr.Length-1) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } } } if (i == 3) { StrTemp = Arr[i - 1].ToString(); } } //if (count == 6) //{ // Label1.Text = count.ToString(); //} Label1.Text = count.ToString(); Label2.Text = StrTemp;这样结果是 连续7次小大 double[] Arr = new double[] { 1.3, 8.1, 7.2, 8.24, 4.4, 7.75, 5.6, 9.2, 2.5, 3.2, 2, 3, 2, 5}; string StrTemp=""; int count = 0;//记录合法的次数 for (int i = 0; i < Arr.Length; i++) { if (i == 0) { if (Arr[i] < Arr[i + 1]) { i += 2; count++; if (Arr[i] < Arr[i - 1]) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } else { count = 0; } } else { i ++; } } else { if (Arr[i] < Arr[i - 1]) { if (i != Arr.Length-1) { if (Arr[i] < Arr[i + 1]) { i += 1; count++; } else { count = 0; } } } } if (i == 3) { StrTemp = Arr[i - 1].ToString(); } } //if (count == 6) //{ // Label1.Text = count.ToString(); //} Label1.Text = count.ToString(); Label2.Text = StrTemp;这样结果是 连续7次小大 线程调用委托,主UI仍无响应,咋回事? InkCanvas如何支持多点画线? Discuz NT 整合问题。。 寻求 高手 支招。 Application.DoEvents()怎么用 xml .net高手请进 小弟急求解决方案 如何监测到用户不再使用当前控件(WinForm编程) 为什么我的程序越运行就越慢啊!! 急急急!!!!!文件加解密问题....请高手们帮忙解决... VS.Net安装中遇到的问题求救 显示提示框问题 C#中string转成byte的问题
{
decimal[] array ={ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, };
int num = check(array);
switch (num)
{
case 0:
Console.WriteLine("daxiao");
break;
case 1:
Console.WriteLine("xiaoda");
break;
case 2:
Console.WriteLine("error");
break;
}
}
private static int check(decimal[] array)
{
bool daxiao = true;
bool xiaoda = true;
if (array.Length > 14 * 2)
{
for (int i = 0; i < 14 * 2; i += 2)
if (array[i] < array[i + 1])
{
daxiao = false;
}
else
if (array[i] > array[i + 1])
{
xiaoda = false;
}
}
if(daxiao) return 0;
if(xiaoda) return 1;
return 2;
}
这个应该可以
比如 1 3 2 4 3 5 4 6
分成 1 2 3 4
和 3 4 5 6
两个数组 从索引 0 开始 比较两个数组相同位置的值 连续 > 或者 < 达到14 个 即满足条件
上面引用 错了 sorry
double[] arr = new double[]{4.3, 2.1, 2.2, 6.24 , 4.4, 3.75 };
double temp = 0;
for (int i = 0; i < arr.Length-1; i++)
{
if (arr[i]>arr[i+1])
{
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
i++;
}
foreach (double d in arr)
{
Console.WriteLine(d);
}
{
decimal[] array ={ 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, };
int num = check(array);
switch (num)
{
case 0:
Console.WriteLine("daxiao");
break;
case 1:
Console.WriteLine("xiaoda");
break;
case 2:
Console.WriteLine("error");
break;
}
}
private static int check(decimal[] array)
{
bool daxiao = true;
bool xiaoda = true;
if (array.Length > 14 * 2)
{
for (int i = 0; i < 14 * 2; i += 2)
if (array[i] < array[i + 1])
{
daxiao = false;
}
else
if (array[i] > array[i + 1])
{
xiaoda = false;
}
}
if(daxiao) return 0;
if(xiaoda) return 1;
return 2;
}
能把数都输出不?
第二步:数组从小到大排序
第二步:使用for循环
for(int i=0;i<arr.length-1;i++)
{
if(arr[i]==arr[i+1])
{
arr.Remove[i] //如果相邻的两个数大小相等则 移除一个。(从小到大排序后,相等的数去 掉)
}
}
第四步:从小到大排序 并且去掉了相邻的大小相等的数,那么再判断数组的长度大于28则符合要求,小于28则不和要求
string StrTemp="";
int count = 0;//记录合法的次数
for (int i = 0; i < Arr.Length; i++)
{
if (i == 0)
{
if (Arr[i] < Arr[i + 1])
{
i += 2;
count++;
if (Arr[i] < Arr[i - 1])
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
else
{
count = 0;
}
}
else
{
i ++;
}
}
else
{
if (Arr[i] < Arr[i - 1])
{
if (i != Arr.Length-1)
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
}
}
if (i == 3)
{
StrTemp = Arr[i - 1].ToString();
}
}
//if (count == 6)
//{
// Label1.Text = count.ToString();
//}
Label1.Text = count.ToString();
Label2.Text = StrTemp;这样结果是 连续7次小大
string StrTemp="";
int count = 0;//记录合法的次数
for (int i = 0; i < Arr.Length; i++)
{
if (i == 0)
{
if (Arr[i] < Arr[i + 1])
{
i += 2;
count++;
if (Arr[i] < Arr[i - 1])
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
else
{
count = 0;
}
}
else
{
i ++;
}
}
else
{
if (Arr[i] < Arr[i - 1])
{
if (i != Arr.Length-1)
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
}
}
if (i == 3)
{
StrTemp = Arr[i - 1].ToString();
}
}
//if (count == 6)
//{
// Label1.Text = count.ToString();
//}
Label1.Text = count.ToString();
Label2.Text = StrTemp;这样结果是 连续7次小大
string StrTemp="";
int count = 0;//记录合法的次数
for (int i = 0; i < Arr.Length; i++)
{
if (i == 0)
{
if (Arr[i] < Arr[i + 1])
{
i += 2;
count++;
if (Arr[i] < Arr[i - 1])
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
else
{
count = 0;
}
}
else
{
i ++;
}
}
else
{
if (Arr[i] < Arr[i - 1])
{
if (i != Arr.Length-1)
{
if (Arr[i] < Arr[i + 1])
{
i += 1;
count++;
}
else
{
count = 0;
}
}
}
}
if (i == 3)
{
StrTemp = Arr[i - 1].ToString();
}
}
//if (count == 6)
//{
// Label1.Text = count.ToString();
//}
Label1.Text = count.ToString();
Label2.Text = StrTemp;这样结果是 连续7次小大