有两个一维数组,长度相等,数量不等,现在要两组数中对应的值相除,得到第三组数,找出第三组数中的最大值,并将与之对应的第一组中的数值自减1,再次相除,重复之前的过程,我是这样做的,求大神指出问题,谢谢using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace NumMax
{
class Program
{
static void Main(string[] args)
{
float[] arrFirst = { 3, 2, 6, 4, 1, 9 };
float[] arrSecond = { 7, 14, 7, 12, 5, 22 };
float[] arrThird = new float[arrFirst.Length];
float[] arrForth = new float[arrFirst.Length];
//float temp = 0;
float max = arrThird[0];
int index = 0;
for (int x = 0; x < arrFirst[index]; x++)
{
for (int i = 0; i < arrFirst.Length; i++)
{
arrThird[i] = arrFirst[i] / arrSecond[i];
}
for (int j = 0; j < arrThird.Length; j++)
{
if (arrThird[j] > arrThird[index])
{
index = j;
max = arrThird[j];
arrForth[j] = max;
}
if (arrForth[j] == 0)
{
return;
}
else
{
Console.WriteLine(arrForth[j]);
Console.Read();
}
}
arrFirst[index] -= 1;
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace NumMax
{
class Program
{
static void Main(string[] args)
{
float[] arrFirst = { 3, 2, 6, 4, 1, 9 };
float[] arrSecond = { 7, 14, 7, 12, 5, 22 };
float[] arrThird = new float[arrFirst.Length];
float[] arrForth = new float[arrFirst.Length];
//float temp = 0;
float max = arrThird[0];
int index = 0;
for (int x = 0; x < arrFirst[index]; x++)
{
for (int i = 0; i < arrFirst.Length; i++)
{
arrThird[i] = arrFirst[i] / arrSecond[i];
}
for (int j = 0; j < arrThird.Length; j++)
{
if (arrThird[j] > arrThird[index])
{
index = j;
max = arrThird[j];
arrForth[j] = max;
}
if (arrForth[j] == 0)
{
return;
}
else
{
Console.WriteLine(arrForth[j]);
Console.Read();
}
}
arrFirst[index] -= 1;
}
}
}
}
float[] arrSecond = { 7, 14, 7, 12, 5, 22 }; float[] arrThird = arrFirst.Select((x, i) => x / arrSecond[i]).ToArray<float>();
var max = arrThird.Max();
var index = Array.IndexOf(arrThird, max); Console.WriteLine(max);
Console.Read(); if(index>-1)
arrFirst[index]--;
float[] arrSecond = { 7, 14, 7, 12, 5, 22 }; float[] arrThird = arrFirst.Select((x, i) => x / arrSecond[i]).ToArray<float>(); //数组1和数组2对应的相除得第3个数组
var max = arrThird.Max(); //取第三个数组最大的值
var index = Array.IndexOf(arrThird, max); //去最大值对应的位置索引 Console.WriteLine(max); //输出这个最大值
Console.Read(); if(index>-1) //其实这个判断可以去掉,肯定会大于-1的
arrFirst[index]--; //将最大值对应位置的第一个数组自减1