在数组c#for循环中添加正负整数之和
Posted
技术标签:
【中文标题】在数组c#for循环中添加正负整数之和【英文标题】:Adding the sum of positive and negative integer in the array c# for loop 【发布时间】:2021-03-21 22:03:44 【问题描述】:“正输入的总和是:”和“负输入的总和是:”部分不起作用,没有答案显示可能是什么解决方案?顺便说一句,这是一个 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];
【问题讨论】:
Console.WriteLine("The sum is " +sum)
?你根本没有打印总和。你不应该在对负值求和之前重置总和吗?或者您是否需要从正值的总和中提取负值?也许你只能在这个数组上循环一次?在显示它们之后增加值是否正常?
我添加了 +sum 但它给出了错误的答案
你是在计算之后做的吧?
首先,你还没有添加代码来显示 sum,所以在 sum-calculating for-loop 结束后,你需要添加类似 Console.WriteLine(sum);
的东西。其次,在计算出正数之和后,您必须使sum = 0
根据需要得到负数的精确输出。
顺便说一句,您了解array[i]++;
的作用吗?您在每个“负输入为”和“正输入为”中都有它。它通过向数组加一来更改数组的值。所以在显示值之后,你就改变它。
【参考方案1】:
首先,从用户输入读取数组长度后,您不会初始化数组。你应该有:
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;
第三,正如评论中提到的Drag and Drop,您不需要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);
祝你考试顺利!
【讨论】:
嗨,先生,我第一次尝试使用 posSum = 0, negSum = 0;想知道为什么它不起作用,也许我用错了方式顺便说一句谢谢先生!【参考方案2】:特别感谢 Usama 爵士和 Drag and Drop 爵士
int[] array = new int[100];
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] + ",");
Console.Write("\nThe sum of positive input is :" );
for (i = 0; i < num; i++)
if (array[i] >= 0)
sum += array[i];
Console.Write(sum);
sum = 0;
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 are :" );
for (i = 0; i < num; i++)
if (array[i] < 0)
sum += array[i];
Console.Write(sum);
【讨论】:
填充数组后,每隔Console.Write
移动一次到最后。并且对于每个类似的 For 循环复制和过去的核心指令。你可以在一个循环中完成所有这一切使用一个简单的if(input>=0)else
,你只需要几个变量来存储总和以及正/负数的字符串表示。以上是关于在数组c#for循环中添加正负整数之和的主要内容,如果未能解决你的问题,请参考以下文章