我将尝试使用C#来进行一些问题解决练习,同时也是对C#新手。下面是问题:给定数组arr=[1,1,0,-1,-1],它有5个元素,两个正数,两个负数和一个零。它们的比率分别为2/5=0.400000(两个正数字),2/5=0.400000(两个负数字)和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);
}
}
输出示例:
(注:本文中的html标签已保留)