Я использую этот код, чтобы изменить размер массива до нового размера:
Я хочу получить массив int, а затем вернуть новый массив с новым размером, который был получен в среднем по элементам Lastarray.(например, изменить размер изображения до нового размера)
private int[] ResizeArray(int[] LastArray, int NewSize)
{
if (LastArray.GetUpperBound(0) == (NewSize-1))
{
return LastArray;
}
int i = 0;
int j = 0;
int c = 0;
int[] NewArray = new int[NewSize];
for (i = 1; i < NewSize; i++)
{
c = 0;
for (j = (int)(i * ((double)LastArray.GetUpperBound(0) / (NewSize))); j <= ((i + 1) * ((double)LastArray.GetUpperBound(0) / (NewSize)) - 1); j++)
{
c += LastArray[j];
}
NewArray[i] = (int)(c / ((double)LastArray.Length / (NewSize)));
}
return NewArray;
}
, но иногда он возвращает необоснованные числа!Как это:
Последний массив: 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365 365
Новый массив: 0421 280 421 280 421 280 421 421 280 421 280 421 280 421 421 280 421 280 421 280 421 421 280 421 280 421 280 421 421 280 421 421
другой Последний массив: 83 84 89 90 91 92 93 94 95 96 9799 100 101 102 104 105 106 109 111 112 114 116 118 120 121 123 125 127 128 130 132 133 134 136 137 138 140 141 142 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
другой Новый массив: 0 103 71 109 75 116 80 125 131 91 141 98 151 103 159 164 111 170 115 176 119 182 185125 191 129 197 133 203 206