Найти все элементы массива, которые больше заданного и заменить их - C#
Формулировка задачи:
Добрый час суток! Задачка такая: Нам задан массив из N элементов. Найти все элементы этого массива,которые больше за заданное пользователем число k и заменить их на число k. Если таких элементов не находится,то уменьшать k на единицу до тех пор,пока не найдется хотя бы 1 элемент,который можно заменить. Вот мой код:
Подскажите пожалуйста,все ли тут правильно? проверяю,пробую и кажется что,что-то идет не так,но не могу до конца сообразить что исправить. Спасибо заранее!
using System;
namespace laba9part1
{
class MainClass
{
static void Main ()
{
try{
int N, k;
Console.WriteLine ("Введите количество елементов массива N");
N = int.Parse (Console.ReadLine());
int[] array= new int[N];
Console.WriteLine ("Заполняем массив");
for (int i = 0; i < array.Length; i++) {
array [i] = int.Parse (Console.ReadLine());
}
Console.WriteLine ("Введите значение числа k");
k = int.Parse (Console.ReadLine());
for(int i=0;i<array.Length;i++)
{
if(array[i]>k) {
Console.WriteLine(array[i]);
i=k;
}else if(array[i]<k){
while(array[i]!=k){
k--;
}
i=k;
}
}
}catch(Exception c)
{
Console.WriteLine (c.Message);
}
}
}
}Решение задачи: «Найти все элементы массива, которые больше заданного и заменить их»
textual
Листинг программы
bool flg = true;
for (int i = 0; flg || i < array.Length; i++)
{
if (array[i] >= k)
{
array[i] = k;
flg = false;
}
if (i == array.Length-1 && flg)
{
i = 0;
k--;
}
}