Кроме того, если вы хотите сохранить ту же концепцию и сделать алгоритм «сами», есть несколько вещей, которые нужно изменить.
Во-первых, начальные значения SmallestNumber и SmallestNumber2 должны быть как можно выше, в противном случае сохраненные числа могут быть только на единицу меньше, чем ваше начальное значение. Поэтому вы можете использовать INT_MAX.
Во-вторых, второе наименьшее число необходимо установить в 2 случаях:
В-третьих, здесь много ненужного кода. Вы проверяете слишком много раз, если значение не равно нулю, что вы знаете из условия while. И у вас есть дублирование кода с помощью оператора cout / cin. Который подвержен ошибкам.
Вот версия того, как это могло бы выглядеть:
int value= INT_MAX;
int SmallestNumber=INT_MAX;
int SmallestNumber2=INT_MAX;
while (value != 0) {
if(value > SmallestNumber && value < SmallestNumber2)
{
SmallestNumber2 = value;
}
else if (value< SmallestNumber)
{
SmallestNumber2 = SmallestNumber;
SmallestNumber = value;
}
cout << "Enter number to find the smallest and second smallest(or 0 to quit): ";
cin >> value;
}
cout << "Smallest number is: " << SmallestNumber << '\n' << endl;
cout << "Second Smallest number is: " << SmallestNumber2 << '\n' << endl;
return 0;
пс: версия @darune является более хорошим решением.
Проблема в том, что intellisense для элементов управления веб-сервера не отображает события на стороне клиента, а содержит только те события, которые были вызваны на сервере. Если бы вы использовали серверный элемент управления HTML для той же цели, вы бы увидели события (JS на стороне клиента) в Intellisense.
Другая проблема, которую следует учитывать, - это то, что событие onclick не поддерживается для элементов option (по крайней мере, в IE, хотя Firefox это прекрасно поддерживает). Вместо этого вы должны обработать клиентское событие onchange
. Пример:
<select id="htmlserverselect" runat="server" onchange="alert(this.value);">
<option value="1">Yes</option>
<option value="2">No</option>
</select>
Много раз зависит от элемента управления, с которым вы работаете, и атрибута. Я знаю, что элементы управления ASP кнопки
будут показывать атрибуты onclick
и onclientclick
в intellisense. Возможно, ASP.NET не полностью поддерживает атрибут onClick
для списка listitem
(в отличие от атрибута selectedindexoted
в списке
/ выпадающий список
/ и т.д. элементы управления)
Причина, по которой вы не видите его в intellisense, заключается в том, что «onclick» не является ASP.Net. Вы заметите, что если вы сделаете следующее:
<asp:ListItem Value="1" Text="Yes" Secret="Yes" onclick="alert('TEST1');" />
<asp:ListItem Value="0" Text="No" Secret="No" onclick="alert('TEST2');" />
Если вы посмотрите на то, что отображается в html, вы увидите атрибут «Секрет». Поэтому, хотя ASP.Net будет отображать любые введенные вами атрибуты, он будет предоставлять только intellisense для атрибутов ASP.Net.
Что касается практики кодирования, я видел и использовал «onclick» слишком много раз, чтобы сосчитать. Поэтому, хотя у пуриста могут быть проблемы с практикой, я думаю, что его можно использовать.
Класс ListItem
не имеет свойства onclick
.
Похоже, что ListItem
реализует IAttributesAccessor
, а также имеет коллекцию Attributes
. Это задокументировано следующим образом:
Получает коллекцию пар имени и значения атрибута для ListItem, которые напрямую не поддерживаются классом.
Атрибуты, которые вы помещаете в тег таким способом, отображаются при визуализации элемента управления. Детали этого отличаются по контролю. Я экспериментировал со страницей, содержащей следующее:
<asp:DropDownList ID="_ddl1" runat="server" >
<asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:DropDownList>
<asp:ListBox ID="_listBox1" runat="server">
<asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:ListBox>
<asp:RadioButtonList ID="_radioList1" runat="server">
<asp:ListItem Text="Item 1" Value="Item1" onClick="foox();" oncluck="bar(this);" />
</asp:RadioButtonList>
В случае DropDownList
и ListBox
оба атрибута отображаются в элементе
. В случае RadioButtonList
,
Давайте предположим, что у нас появляется всплывающее сообщение, вызванное сеансом Тайм-аут вроде события.
Как вы должны иметь для вашего онлайн-банкинга веб приложение.
Итак, сообщение появляется чтение, что у вас мало Больше минут, чтобы завершить онлайн опыт работы с этим конкретным Защищенный сайт.
Обычно, если вы ничего не делаете об этом, в примерно в то же время потребовалось сообщение для поп, приложение будет подписать вас.
На стороне клиента у вас есть JavaScript для времени эти действия.
Теперь, давайте скажем, что кнопка, которая вас подписывает называется «btnsignout».
Если вы хотите вызвать то же действие от Линия JS, на тайм-ауте, у вас должна быть что-то подобное:
if(timeout){
;
}
, которое будет вызвать одно и то же событие, что нажав на «btnsignout» linkbutton.