小编Dan*_*nM7的帖子

计算数组中的最大值和最小值

我有一个整数数组,需要在最大数字的数组中找到最小值的位置.我有它工作但它似乎不是一个非常好的方法来做到这一点.任何人都可以建议一个更好的方法来实现我的目标吗?

这是我的代码:

int[] usageHours = { 3, 3, 5, 4, 0, 0, 2, 2, 4, 25, 158, 320, 212, 356, 401, 460, 480, 403, 298, 213, 102, 87, 34, 45 };
double myAverage = usageHours.Average();
int runningTotal = 0;
int runningMaxPosition = 0;

for (int i = 0; i < usageHours.Length; i++)
{
    if (usageHours[i] > runningTotal)
    {
        runningMaxPosition = i;
        runningTotal = usageHours[i];
    }
}

txtmax.Text = Convert.ToString(runningMaxPosition)+" With: "+Convert.ToString(runningTotal)+" Users";
txtAv.Text = Convert.ToString(myAverage);
Run Code Online (Sandbox Code Playgroud)

c# arrays element

3
推荐指数
1
解决办法
3698
查看次数

返回STL列表作为参数

我有一个函数从日志文件中读取行,将这些行转换为某个类并返回此类的实例的STL列表.

我应该如何声明这个函数,以便在将它归因于调用者时不复制整个列表?

不失一般性,假设:

list<Request> requests = log_manipulator.getAsRequestList();
Run Code Online (Sandbox Code Playgroud)

我该如何申报getAsRequestList()?我应该返回对列表的引用还是只返回一个列表?

这是一个严重的问题,因为在这个特定的赋值中,列表将包含大约1.5M的元素,因此这样的错误可能会增加内存使用量.

c++ stl list

2
推荐指数
3
解决办法
5003
查看次数

找到可被6或7整除但不能同时整数的整数

我正在尝试编写一个程序,显示1到100之间的整数,可以被6或7整除但不能同时整数.

这是我的代码:

import acm.program.*;

public class Problem4 extends ConsoleProgram
{
    public void run()
    {
        for (int i = 1; i <= 100; i++)
        {
            boolean num = ((i % 6 == 0) || (i % 7 == 0));

            if (num == true)
            println(i + " is divisible");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码显示如下回答:6,7,12,14,18,21,24,28,30,35,36,42,48,49,54,56,60,63,66,70,72, 77,78,84,90,91,96,98

现在粗体数字42和84都是6和7的divisbile.现在如果我在上面的代码中更改了||to &&,结果只显示了42和84.

我应该做些什么改变才能从最终结果中删除这两个数字?

java integer-division

2
推荐指数
4
解决办法
9411
查看次数

检查数组中是否有任何重复的元素递归

如果整数数组中有任何重复的元素,我必须递归地找到它v.该方法必须具有以下签名:

boolean hasRepeatedElements(int[] v) 
Run Code Online (Sandbox Code Playgroud)

我无法看到任何递归方式,无需为此方法定义另一个方法或至少另一个重载(例如,该方法需要使用后面的元素).首先,我考虑检查当前v是否有一些元素等于第一个元素,然后创建一个包含L-1元素等的新数组,但这看起来效率很低.这是唯一的方法吗?

我在这里错过了什么吗?

c# java recursion

2
推荐指数
1
解决办法
2006
查看次数

导航回并重新加载页面

我的ASP.NET(Framework 4)Web项目中的导航存在问题.我在主页面上有一个登录字段.主页还包含一个ContentPlaceHolder,它动态地包含其他aspx页面.我从页面"a"开始并导航到页面"b".当我登录页面"b"时,导航中的其他节点变得可见.现在我的问题:当我从浏览器推送"历史回复"按钮时,附加节点在页面"a"上消失.

我发现页面"a"不会再次重新加载,因为它是从浏览器的缓存中加载的.

我尝试使用LinkBut​​ton(Zurueck):

protected void Page_Load(object sender, EventArgs e)
{
    Zurueck.Attributes.Add("onClick", "javascript:history.back(); return false;");
}
Run Code Online (Sandbox Code Playgroud)

我还在C#源代码和aspx源代码中尝试了一些缓存限制:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);

    if (Session["sessionKuerzel"] != null)
    {
        view = (TreeView)this.FindControl("TreeViewVerwaltung");
        view.Visible = true;
        login = (Button)this.FindControl("Senden");
        login.Visible = false;
        logout = (Button)this.FindControl("Logout");
        logout.Visible = true;
        benutzerrecht = (string)(Session["sessionRecht"]);
        if (benutzerrecht.Equals("Administrator")){
            view.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.Select;
        }
        else{
            view.Nodes[0].ChildNodes[1].SelectAction = TreeNodeSelectAction.None;
        }
        view.Visible = true;
    }          
}
Run Code Online (Sandbox Code Playgroud)

Site.Master.aspx(负责人):

<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
Run Code Online (Sandbox Code Playgroud)

但所有这些替代方案都不适用于Mozilla FireFox.

如何在历史记录中导航并重新加载页面?任何想法或解决方案?

c# asp.net

2
推荐指数
1
解决办法
8633
查看次数

在方法中调用方法的正确方法

我需要创建一个应用程序来充当BMI计算器,它收集许多属性,具有匹配的属性来获取和设置这些属性值,并请求许多方法来计算特定数据,如患者年龄,最大心率,目标费率等等.

我的问题主要是关于方法的使用,看看这种用法是正确还是不正确.

我计算年龄的方法如下:

public int Age()
{
   DateTime Now = DateTime.Today;
   return (Now.Year - DateOfBirth);
}
Run Code Online (Sandbox Code Playgroud)

我不能100%肯定的是,如果我现在可以在另一个方法的计算中使用该方法,如下所示:

public int MaxHeartRate()
{
   return (220 - Age());
}
Run Code Online (Sandbox Code Playgroud)

我本可以使用属性来执行此操作,但是,赋值使用方法来执行计算.

任何帮助将不胜感激.我理解方法和属性之间的用法,但是我不清楚在方法中调用另一个方法用于计算目的的用法.

c#

2
推荐指数
1
解决办法
570
查看次数

如何使用NumericUpDown计算文本框值的总数?

我正在尝试制作一个小的披萨订单,但我的计算有问题.选择披萨后,单价和总计算都可以,但选择添加会引入问题.更改NumericUpDown值后,卡路里不正确(所有单位都有不变的价格和卡路里).NumericUpDown的名称是numberofunit.我该怎么计算它们?

if (pepper.Checked)
{
    string peppereklendi = 
        Convert.ToString(Convert.ToDouble(unitprice.Text)+ pepperprice);

    unitprice.Text = peppereklendi;

    total.Text = 
        Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);

    string pepperkaloriekle = 
        Convert.ToString(Convert.ToInt16(gizlikalori.Text) + pepperkalori);

    gizlikalori.Text = pepperkaloriekle;

    amountofcalorie.Text = 
        Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}
else
{
    string peppereklendi = unitprice.Text;

    unitprice.Text = 
        Convert.ToString(Convert.ToDouble(peppereklendi) - pepperprice);

    total.Text = Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);

    string pepperkaloriekle = gizlikalori.Text;

    gizlikalori.Text = 
        Convert.ToString(Convert.ToDouble(pepperkaloriekle) - pepperkalori);

    amountofcalorie.Text = 
        Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}
Run Code Online (Sandbox Code Playgroud)

此代码是胡椒的复选框代码.

这是我的申请表.

c# textbox numericupdown

2
推荐指数
1
解决办法
2316
查看次数

在我的多线程应用程序失败后,未完成的线程是否会挂起?

我的应用程序在自己的线程上启动多个长时间运行的函数/方法.当其中一个线程遇到错误时,我的程序崩溃(如预期的那样).但问题是,应用程序生成的所有线程是否都停止执行?还是他们在某个地方闲逛?如果是这样,我是否需要编写另一个应用程序来监控它们以便我可以杀死它们?

谢谢!

c# multithreading

2
推荐指数
1
解决办法
227
查看次数

RadComboBox选中的值为空

SelectedValue = ""当我点击我的按钮时,我得到了.

我的aspx:

<telerik:RadComboBox ID="ddl_contactList" runat="server" AutoPostBack="True" CausesValidation="False"
            CollapseDelay="0" Culture="ar-EG" ExpandDelay="0" Filter="StartsWith" ItemsPerRequest="10"
            MarkFirstMatch="true" Skin="Outlook" EnableAutomaticLoadOnDemand="True" EmptyMessage="-New Menu-"
            ShowMoreResultsBox="True" OnSelectedIndexChanged="ddl_contactList_SelectedIndexChanged"
            EnableItemCaching="false" EnableLoadOnDemand="True" EnableVirtualScrolling="True">
        </telerik:RadComboBox>
Run Code Online (Sandbox Code Playgroud)

我的.cs:

 private void BindContactLists(int year, int main_code)
        {
            ddl_contactList.Items.Clear();
            DataTable dt = ContactList.GetContactListsByDep(year, main_code);
            ddl_contactList.DataSource = dt;
            ddl_contactList.DataTextField = "list_desc";
            ddl_contactList.DataValueField = "list_code";
            ddl_contactList.DataBind();

        }
Run Code Online (Sandbox Code Playgroud)

我把它称之为,page load因为当我在其中调用它时 !Page.Ispostback,我收到以下错误:

没有分配的数据源.无法完成回叫请求.

我该如何解决这个问题?马上:

ddl_contactList.Text == "MySelectedItemText"

selectedValue == ""selectedItem == ""

c# asp.net selectedvalue telerik radcombobox

2
推荐指数
1
解决办法
1万
查看次数

将Clarion过程声明转换为C#DLLImport

如何将此Clarion过程声明转换为C#?它是用C编写的第三方DLL的一部分,没有太多的文档。我已经在Clarion中列出了可以正常工作的方法的原型。在C#中,我不确定要使用哪种类型来替换*CString。我尝试char[]像@DanielC建议的那样,但是没有用。我还发现Clarion long是32位的(感谢@ shf301)。

号角:

SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual
Run Code Online (Sandbox Code Playgroud)

C#(我尝试过的方法不起作用):

[DllImport("3RD_PARTY_API.dll")]
private static extern long SendRequest(ref string xData, int DataLen, int xTimeout);
Run Code Online (Sandbox Code Playgroud)

当我SendRequest在C#中调用该方法时,我从VS2010 获取标准的PInvokeStackImbalance被检测到错误。我认为它的参数类型的问题,而不是像CharSetEntryPoint的DllImport声明。我真的只是停留在如何转换*CString为有效的C#类型上。

c# pinvoke clarion

2
推荐指数
1
解决办法
1083
查看次数