一、函数复习:
namespace _5月12日_函数复习
{
class Program
{
//请编写一个打印三角形的函数,要求根据输入的数打印多少行
//没有返回值,没有参数
public void san()
{
Console.Write("请输入行数:");
int a = int.Parse(Console.ReadLine());
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("☆");
}
Console.WriteLine();
}
}
/// <summary>
/// 输入一个参数,自动打印三角形
/// </summary>
/// <param name="a"></param>
public void sanjiao(int a)
{
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("☆");
}
Console.WriteLine();
}
}
//传值:就是将实参的值传到所调用的函数里面,实参的值并没有发生变化,默认传值的有int型,浮点型,bool型,char字符型,结构体等等
//传址:就是将地址传到所调用的函数里面操作,实参的值也会跟着变化,传址的有数组和字符串string。
//out可以在一个函数中同时返回多个值,而returu只能传一个值
public void aa(out int a, int b)
{
//out进来的变量只能被赋值,因为相当于仅仅哪了个箱子过来,
a = 33 + b;
//程序段完成之后要将此箱子连同赋值的结果一起送回去
}
static void Main(string[] args)
{
//函数的作用:减少重复编写程序段的工作量
//请编写一个打印三角形的函数,要求根据输入的数打印多少行
//首先初始化
Program hanshu = new Program();
//没有返回值,没有参数
//hanshu.san();
//Console.Write("请输入行数:");
//int ee = int.Parse(Console.ReadLine());
//hanshu.sanjiao(a);
int ee;
hanshu.aa(out ee,5);
Console.WriteLine(ee);
Console.ReadLine();
}
}
}
练习一:卖羊
namespace 练习__卖羊
{
class Program
{
//练习:每过一个村庄卖掉总数的二分之一零一只,过了七个村庄之后还剩两只,问最初有多少只羊
//1、有返回值,没有参数
//public int leijia()
//{
// int sum = 0;
// for (int i = 8; i >= 1; i--)
// {
// if (i == 8)
// {
// sum = 2;
// }
// else
// {
// sum = (sum + 1) * 2;
// }
// }
// return sum;
//}
static void Main(string[] args)
{
//初始化,一定要有
Program hanshu = new Program();
//练习:每过一个村庄卖掉总数的二分之一零一只,过了七个村庄之后还剩两只,问最初有多少只羊
//分析:第7天:2只,第6天:(2+1)*2=6只,第5天:(6+1)*2=14只,以此类推
//1、有返回值,没有参数
//int sum = hanshu.leijia();
//Console.WriteLine(sum);
Console.ReadLine();
}
}
}
练习二:兔子生兔子
namespace 练习__兔子生兔子
{
class Program
{
//没有返回值,有参数
public void zt(int a)
{
int ct = 0;
int xt = 0;
int yt = 1;
int sum = 1;
for (int i = 1; i <= a; i++)
{
if (i == 1)
{
ct = 0;//第一个月成兔对数0
xt = 0;//第一个月小兔对数0
yt = 1;//第一个月幼兔对数1
sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
}
else
{
ct = xt + ct;//每个月成兔=上月个的小兔+上月个的成兔
xt = yt;//每月小兔=上个月的幼兔
yt = ct;//每月幼兔=本月的成兔
}
sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
Console.WriteLine(i + "个月后成兔的对数是:" + ct);
Console.WriteLine(i + "个月后小兔的对数是:" + xt);
Console.WriteLine(i + "个月后幼兔的对数是:" + yt);
Console.WriteLine(i + "个月后总的兔子的对数是:" + sum);
}
}
static void Main(string[] args)
{
//初始化
Program hanshu = new Program();
//有一对幼兔,幼兔一个月后长成小兔,小兔一个月后长成成兔并生下一对幼兔,成兔每月生下一对幼兔,问几年后
//有多少对兔子,幼兔,小兔,成兔对数分别是多少。
//分析:本月成兔=上月个的小兔+上月个的成兔
// 本月小兔=上个月的幼兔
// 本月幼兔=本月的成兔
//Console.Write("请输入月份:");
//int yf = int.Parse(Console.ReadLine ());
//int ct = 0;
//int xt = 0;
//int yt = 1;
//int sum = 1;
//if (yf == 1)
//{
// for (int i = 1; i <= yf; i++)
// {
// ct = 0;//第一个月成兔对数0
// xt = 0;//第一个月小兔对数0
// yt = 1;//第一个月幼兔对数1
// sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
// }
// Console.WriteLine(yf + "个月后成兔的对数是:" + ct);
// Console.WriteLine(yf + "个月后小兔的对数是:" + xt);
// Console.WriteLine(yf + "个月后幼兔的对数是:" + yt);
// Console.WriteLine(yf + "个月后总的兔子的对数是:" + sum);
// Console.ReadLine();
//}
//else
//{
// for (int i = 2; i <= yf; i++)
// {
// ct = xt + ct;//每个月成兔=上月个的小兔+上月个的成兔
// xt = yt;//每月小兔=上个月的幼兔
// yt = ct;//每月幼兔=本月的成兔
// sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
// }
// Console.WriteLine(yf + "个月后成兔的对数是:" + ct);
// Console.WriteLine(yf + "个月后小兔的对数是:" + xt);
// Console.WriteLine(yf + "个月后幼兔的对数是:" + yt);
// Console.WriteLine(yf + "个月后总的兔子的对数是:" + sum);
// Console.ReadLine();
//}
//第二种
//for (int i = 1; i <= yf; i++)
//{
// if (i == 1)
// {
// ct = 0;//第一个月成兔对数0
// xt = 0;//第一个月小兔对数0
// yt = 1;//第一个月幼兔对数1
// sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
// }
// else
// {
// ct = xt + ct;//每个月成兔=上月个的小兔+上月个的成兔
// xt = yt;//每月小兔=上个月的幼兔
// yt = ct;//每月幼兔=本月的成兔
// }
// sum = ct + xt + yt;//兔子总数=成兔+小兔+幼兔
// Console.WriteLine(i + "个月后成兔的对数是:" + ct);
// Console.WriteLine(i + "个月后小兔的对数是:" + xt);
// Console.WriteLine(i + "个月后幼兔的对数是:" + yt);
// Console.WriteLine(i + "个月后总的兔子的对数是:" + sum);
// Console.ReadLine();
//}
//没有返回值,有参数
Console.Write("请输入月份:");
int yf = int.Parse(Console.ReadLine());
hanshu.zt(yf);
Console.ReadLine();
}
}
}
练习三:求篮球高度
namespace 练习4_篮球高度
{
class Program
{
//有参数,有返回值
public double lq(double z)
{
double gd = 20;
for (int i = 0; i < z; i++)
{
gd = gd * 0.75;
}
return gd;
}
static void Main(string[] args)
{
//写个函数,要求计算篮球弹起高度,从20米这次是上次的四分之三,求输入次数算出高度
//写成 有参数,有返回值 样式
Program hanshu = new Program();//先把函数初始化
//有参数,有返回值
Console.Write("请输入次数:");
double n = double.Parse(Console.ReadLine ());
//double gd = 20;
//for (int i = 0; i < n; i++)
//{
// gd = gd * 0.75;
//}
//Console.WriteLine("篮球高度为:"+gd);
double gd = hanshu.lq(n);
Console.WriteLine(gd);
Console.ReadLine();
}
}
}
练习四:用☆打印一个等腰三角形
namespace 练习6_打印等腰三角形
{
class Program
{
public void sanjiao(int n)
{
for (int i = 1; i <= n; i++)
{
for (int b = 1; b <= n - i; b++)
{
Console.Write(" ");
}
for (int c = 1; c <= 2 * i - 1; c++)
{
Console.Write("☆");
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
//先把函数初始化
Program hangshu = new Program();
//写一个打印等腰三角形的函数
//有输入值,没有返回值
Console.Write("请输入行数:");
int n = int.Parse(Console.ReadLine());
//for (int i = 1; i <= n; i++)
//{
// for (int b = 1; b <= n - i; b++)
// {
// Console.Write(" ");
// }
// for (int c = 1; c <= 2 * i - 1; c++)
// {
// Console.Write("☆");
// }
// Console.WriteLine();
//}
hangshu.sanjiao(n);
Console.ReadLine();
}
}
}
练习五:双色球
namespace 练习5_双色球
{
class Program
{
//随机出现32以内的六个红色球,随机出现16以内的蓝色球一个,组成彩票号码
//没有参数,有返回值
public int[] caipiao()
{
int[] aa = new int[7];
Random ran = new Random();
for (int i = 0; i < 6; i++)
{
int a = ran.Next(1, 33);
aa[i] = a;
for (int l = 0; l < i; l++)
{
if (aa[l] == a)
{
i--;
}
}
}
aa[6] = ran.Next(1, 17);
return aa;
}
static void Main(string[] args)
{
//随机出现1-32以内的六个红色球,随机出现1-16以内的蓝色球一个,组成彩票号码
//写成 没有参数,有返回值 样式
Program hanshu = new Program();
int[] a = new int[7];
a = hanshu.caipiao();
foreach (int b in a)
{
Console.Write(b + "\t");
}
Console.ReadLine();
}
}
}