gpt4 book ai didi

c# - 如何解决数组计数和除法问题?

转载 作者:行者123 更新时间:2023-11-30 15:53:07 24 4
gpt4 key购买 nike

我一直在尝试使用 C# 进行一些解决问题的练习,同时也是 C# 的新手。所以这就是问题所在,给定数组 arr= [1,1,0,-1,-1] 有 5 个元素,两个正数,两个负数和一个零数字。两个正数的比率为 2/5=0.400000,两个负数的比率为 2/5 = 0.400000,1 个零的比率为 1/5 = 0.200000。它应该被打印为

0.400000
0.400000
0.200000

我实际上想做的是,计算数组中的所有负数并将其除以该数组中元素的总数。该数组中正数和零的情况相同。最后,它会打印出 3 个结果。这是我试过的。我没有得到想要的输出。

using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.RegularExpressions;
using System.Text;
using System;

class Solution {

// Complete the plusMinus function below.
static void plusMinus(int[] arr) {
int[] positiveArray = new int[arr.Length];
int[] negativeArray = new int[arr.Length];
int[] zeroArray = new int[arr.Length];

for(int i=0; i <arr.Length; i++){
if(arr[i]>0){

arr[i]=positiveArray[i];

}else if(arr[i]<0){
arr[i] = negativeArray[i];
}else if(arr[i] == 0){
arr[i] = zeroArray[i];
}
}
float postive = (float)positiveArray.Length/arr.Length;
float negative = (float)negativeArray.Length/arr.Length;
float zero = (float)zeroArray.Length/arr.Length;

Console.WriteLine(postive);
Console.WriteLine(negative);
Console.WriteLine(zero);

}

static void Main(string[] args) {
int n = Convert.ToInt32(Console.ReadLine());

int[] arr = Array.ConvertAll(Console.ReadLine().Split(' '), arrTemp => Convert.ToInt32(arrTemp))
;
plusMinus(arr);
}
}

输出示例:

enter image description here

最佳答案

因为这是 C#,你可以使用一些花哨的 LINQ

Console.WriteLine((float)arr.Count(n => n  > 0)/(float)arr.Length);
Console.WriteLine((float)arr.Count(n => n < 0)/(float)arr.Length);
Console.WriteLine((float)arr.Count(n => n == 0)/(float)arr.Length);

关于c# - 如何解决数组计数和除法问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53052582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com