首页 > 解决方案 > 在数组c#for循环中添加正负整数之和

问题描述

“正输入的总和是:”和“负输入的总和是:”部分不起作用,没有答案显示解决方案可能是什么?顺便说一句,这是一个 11 年级的问题

int i, num, sum = 0;
Console.Write("\nInput the number of elements to be stored in the array :");
num = Convert.ToInt32(Console.ReadLine());

for (i = 0; i < num; i++)
{
    Console.Write("Elements - {0}:", i, num);
    array[i] = Convert.ToInt32(Console.ReadLine());
}
Console.Write("The positive inputs are :");
for (i = 0; i < num; i++)
{
    if (array[i] >= 0)
    {

        Console.Write(array[i] + ",");
        array[i]++;


    }
}
Console.Write("\nThe sum of positive input is :");
for (i = 0; i < num; i++)
{
    if (array[i] >= 0)
    {
        sum += array[i];
    }
}
    Console.Write("\nThe negative inputs are :");
for (i = 0; i < num; i++)
{
    if (array[i] < 0)
    {
        Console.Write(array[i] + ",");
        array[i]++;

    }
}
Console.Write("\nThe sum of negative input is :");
for (i = 0; i < num; i++)
{
    if (array[i] < 0)
    {
        sum += array[i];
    }
}

标签: c#arraysfor-loop

解决方案


首先,从用户输入读取数组长度后,您不会初始化数组。你应该有:

int[] array;
Console.Write("\nInput the number of elements to be stored in the array :");
num = Convert.ToInt32(Console.ReadLine());
array = new int[num];

其次,您sum对正负计算使用相同的变量(中间不重置)。您可以为这两个计算使用两个单独的变量:

int i, num, posSum = 0, negSum = 0;

第三,正如评论中提到的拖放,你不需要那个array[i]++;,因为它修改了数组的元素。

第四,正如Usama Aziz在评论中提到的那样,您没有Console.Write打印结果的位置。

最终解决方案应如下所示:

static void Main(string[] args)
{
    int i, num, posSum = 0, negSum = 0;
    int[] array;
    Console.Write("\nInput the number of elements to be stored in the array :");
    num = Convert.ToInt32(Console.ReadLine());
    array = new int[num];

    for (i = 0; i < num; i++)
    {
        Console.Write("Elements - {0}:", i, num);
        array[i] = Convert.ToInt32(Console.ReadLine());
    }

    Console.Write("The positive inputs are :");
    for (i = 0; i < num; i++)
    {
        if (array[i] >= 0)
        {
            Console.Write(array[i] + ",");
        }
    }

    Console.Write("\nThe sum of positive input is :");
    for (i = 0; i < num; i++)
    {
        if (array[i] >= 0)
        {
            posSum += array[i];
        }
    }
    Console.Write(posSum);

    Console.Write("\nThe negative inputs are :");
    for (i = 0; i < num; i++)
    {
        if (array[i] < 0)
        {
            Console.Write(array[i] + ",");
        }
    }

    Console.Write("\nThe sum of negative input is :");
    for (i = 0; i < num; i++)
    {
        if (array[i] < 0)
        {
            negSum += array[i];
        }
    }
    Console.Write(negSum);
}

祝你考试顺利!


推荐阅读