无法获得输出。有什么选择?

时间:2016-03-22 18:53:31

标签: c#

如果CL(计数幸运)大于CUL(计算不幸),我想打印就绪。 我的标准是N是一些数字,数组A是N.并且检查数组的内容是否单独的内容是偶数/奇数。如果连CL ++,或者CUL ++

static void Main(string[] args) 
{
    int N = int.Parse(Console.ReadLine());
    int[] A = new int[100];
    int cL=0; int CUL = 0;
    int j;

    for (j = 0; j < N; j++)
    {
        A[j] = int.Parse(Console.ReadLine());
        if (A[j] %2!=0))
        {

            CUL = CUL++;
        }
        else
        {
            cL = cL++;
        }
    }
    if (cL>CUL)
    {
        Console.WriteLine("Ready for battle");
    }
    else
    {
        Console.WriteLine("Not ready");
    }
}   

2 个答案:

答案 0 :(得分:1)

忽略小错误,最后你应该有一个Console.ReadLine();,你可能正在通过visual studio运行它,并且由于程序在完成时关闭得太快,你无法看到输出。

稍后您可以修改代码,如:

  • 同样使用N表示数组大小,想象一下用户是否输入 超过100的任何东西,你将最终得到一个例外的“索引 范围”。
  • 无需分配增量运算符的结果,它将更新变量。 Postfix运算符会递增该值,但在下次使用时会显示该值,在您的情况下,由于您要将结果返回给它,因此总是会以0结束。

代码应为:

int N = int.Parse(Console.ReadLine());
int[] A = new int[N]; //Use the input limit here on array size
int cL = 0; int CUL = 0;
int j;
for (j = 0; j < N; j++)
{
    A[j] = int.Parse(Console.ReadLine());
    if (A[j] % 2 != 0)
    {

      CUL++;//no need to reassing result
    }
    else
    {
        cL++;
    }

}
if (cL > CUL)
{
    Console.WriteLine("Ready for battle");
}
else
{
    Console.WriteLine("Not ready");
}
Console.Readline(); // Just to halt the program to see the output. 

答案 1 :(得分:0)

问题在于

CUL = CUL++;

并在

cL = cL++;

您将CUL分配给CUL(和cL),当它为0时,将右CUL的值增加为仅 >任务,所以在下一个itreation CULcL仍为0.将其更改为

if (A[j] %2!=0))
{
    CUL++;
}
else
{
    cL++;
}

A数组声明中也存在问题。您可以从用户那里获得大小,但是将其初始化为100。我应该

int[] A = new int[N];