C#两个很简单的编程问题一球从100米高度*落下
问题描述:
C#两个很简单的编程问题一球从100米高度*落下
1.一球从100米高度*落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹的高度是多少?
2.输入10个整数,统计并输出其中正数、负数和零的个数.
用C#语言编程,
答
using System.Collections.Generic;
using System.Text;
namespace IronBall
{
public class IronBall
{
public double hight=0;
//h是高度,count是反弹次数
public double getDistance(double h,int count)
{
double dis = h;
this.hight = h;
for (int i = 0; i < count-1; i++)
{
hight = hight / 2;
dis += 2*hight;
}
return dis;
}
}
class Program
{
static void Main(string[] args)
{
IronBall rb = new IronBall();
Console.WriteLine("总距离"+rb.getDistance(100,10));
Console.WriteLine("最后一次反弹高度" +rb.hight/2);
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
public class PointsStat
{
ArrayList points = new ArrayList();
public void addPoint(double p)
{
points.Add(p);
}
public int plusZero()
{
int count = 0;
foreach (double p in points)
{
if (p > 0)
count++;
}
return count;
}
public int minusZero()
{
int count = 0;
foreach (double p in points)
{
if (p < 0)
count++;
}
return count;
}
public int zero()
{
int count = 0;
foreach (double p in points)
{
if (p==0)
count++;
}
return count;
}
}
static void Main(string[] args)
{
PointsStat ps1 = new PointsStat();
for (int i = 0; i < 10;i++ )
{
string s = Console.ReadLine();
if (s != "")
{
double d = double.Parse(s);
ps1.addPoint(d);
}
else
i--;
}
Console.WriteLine("\n正分:" + ps1.plusZero());
Console.WriteLine("\n负分数:" + ps1.minusZero());
Console.WriteLine("\n零分:" + ps1.zero());
Console.ReadLine();
}
}
}
第一题
using System;using System.Collections.Generic;
using System.Text;
namespace IronBall
{
public class IronBall
{
public double hight=0;
//h是高度,count是反弹次数
public double getDistance(double h,int count)
{
double dis = h;
this.hight = h;
for (int i = 0; i < count-1; i++)
{
hight = hight / 2;
dis += 2*hight;
}
return dis;
}
}
class Program
{
static void Main(string[] args)
{
IronBall rb = new IronBall();
Console.WriteLine("总距离"+rb.getDistance(100,10));
Console.WriteLine("最后一次反弹高度" +rb.hight/2);
Console.ReadLine();
}
}
}
第二题:
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
public class PointsStat
{
ArrayList points = new ArrayList();
public void addPoint(double p)
{
points.Add(p);
}
public int plusZero()
{
int count = 0;
foreach (double p in points)
{
if (p > 0)
count++;
}
return count;
}
public int minusZero()
{
int count = 0;
foreach (double p in points)
{
if (p < 0)
count++;
}
return count;
}
public int zero()
{
int count = 0;
foreach (double p in points)
{
if (p==0)
count++;
}
return count;
}
}
static void Main(string[] args)
{
PointsStat ps1 = new PointsStat();
for (int i = 0; i < 10;i++ )
{
string s = Console.ReadLine();
if (s != "")
{
double d = double.Parse(s);
ps1.addPoint(d);
}
else
i--;
}
Console.WriteLine("\n正分:" + ps1.plusZero());
Console.WriteLine("\n负分数:" + ps1.minusZero());
Console.WriteLine("\n零分:" + ps1.zero());
Console.ReadLine();
}
}
}