c# - 如何解决数组数的计数和除法问题?
问题描述
我一直在尝试使用 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);
}
}
输出示例:
解决方案
因为这是 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);
推荐阅读
- ios - 创建具有与应用程序包 ID 不同的包 ID 的 Firebase 应用程序
- javascript - 我想在 JavaScript 中访问地址栏内容
- omnet++ - Omnet/Inet 中节点的位置
- javascript - 如何使 ajax 更新程序使用原型 js 更新所有具有类 mydivclass 的元素?
- asp.net-core - 无法从 API Angular 6 获取错误消息
- c - 将双精度从文件存储到数组。更好的方法?
- python - 如何使单元加入for循环变量
- python-3.x - 用于两步 ssh 隧道的 Jupyter notebook SSH 隧道
- laravel - Laravel 在响应中返回前导 \u0 字符
- c# - 用于在 Web 浏览器中显示图片的服务器