【发布时间】:2018-10-29 19:34:43
【问题描述】:
我一直在尝试使用 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);
}
}
输出示例:
【问题讨论】:
-
您能否添加一个包含一些输入和输出的示例?
-
当然。感谢您提醒我添加输出示例