数组操作

数组操作遇到的问题:

  1、数组长度 = 数组下标+1;  数组下标 = 数组长度 -1;

  2、如果定义数组为整形(int[])类型,就不能赋值字符串类型。

  3.数组内存的是连续的、同一类型的数据

#region ======星光大道投票五个选手20人投票======
int[] xs = new int[5]; // 定义一个数组、有五个选手
//20人投票
for (int i = 0; i < 20; i++)
{
  Console.WriteLine("您投几号:(1~5)");
  int hao = Convert.ToInt32(Console.ReadLine());
  xs[hao - 1]++;
}
//显示
for (int i = 0; i < xs.Length; i++)
{
  Console.WriteLine("第{0}号选手的分{1}", i + 1, xs[i]);
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion

#region ======教练给10球员打分,显示每位球员得分、显示最高分及球员,最低分及球员、显示平均得分======
int max = 0;//最高分
int min = 1000;//最低分
int[] qy = new int[10];//球员数组
//打分
for (int i = 0; i < qy.Length; i++)
{
  Console.WriteLine("请给第{0}个球员打分", i + 1);
  qy[i] = Convert.ToInt32(Console.ReadLine());
}
//显示每位球员得分
for (int i = 0; i < qy.Length; i++)
{
  Console.WriteLine("第{0}个学员的分数为{1}", 1 + i, qy[i]);
}
//计算最高分、最低分
for (int i = 0; i < qy.Length; i++)
{
  //最高分
  if (qy[i] > max)
  {
    max = qy[i];
  }
  //最低分
  if (qy[i] < min)
  {
    min = qy[i];
  }
}
//求平均分
int sum = 0;
for (int i = 0; i < qy.Length; i++)
{
  sum = sum + qy[i];
}
double avg = 1.0 * sum / 10;

Console.WriteLine("最高分为{0},最低分为{1},平均分{2}", max, min, avg);

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion

#region ======青歌赛打分、20位评委给一个选手打分、去掉一个最高分、去掉一个最低分求平均得分、去掉两个分======
int[] pw = new int[10]; //20个评委
int xs_1 = 0;//选手得分
int max_1 = 0;
int min_1 = 0;
int sum_1 = 0;
double avg_1 = 0;
//评委打分
for (int i = 0; i < pw.Length; i++)
{
  Console.WriteLine("请{0}号评委给选手打分:", i + 1);
  pw[i] = Convert.ToInt32(Console.ReadLine());
}
//求最高分、最低分、平均分
min_1 = pw[0];
for (int i = 0; i < pw.Length; i++)
{
  //最高分
  if (pw[i] > max_1)
  {
    max_1 = pw[i];
  }
  //最低分
  if (pw[i] < min_1)
  {
    min_1 = pw[i];
  }
  //求和
  sum_1 = sum_1 + pw[i];

}
//求平均值
avg_1 = 1.0 * (sum_1 - max_1 - min_1) / 10;

//去掉两个最高分,去掉两个最低分,求平均分
//排序:
int z = 0; //中间量
for (int i = 0; i < pw.Length; i++)
{
  for (int j = i; j < pw.Length - 1; j++)
  {
    if (pw[i] < pw[j + 1])
    {
      z = pw[i];
      pw[i] = pw[j + 1];
      pw[j + 1] = z;
    }
  }
}

double avg_2 = 1.0 * (sum_1 - pw[0] - pw[1] - pw[pw.Length - 1] - pw[pw.Length - 2]) / 10;

Console.WriteLine("去掉一个最高分{0},去掉一个最低分{1},平均得分为{2},去两个平均分为{3}", max_1, min_1, avg_1, avg_2);


Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion

#region ====== 老师20个学生语文成绩、及格、优秀、不及格、不及格显示学号======
int[] stu = new int[20];//20个学生成绩数组
int n = 0;//不及格的人数
for (int i = 0; i < stu.Length; i++)//接收学生成绩
{
  Console.WriteLine("请输入第{0}个学员的成绩:", i);
  int chengji = Convert.ToInt32(Console.ReadLine());
  if (chengji < 60)
  {
    n++;
  }
  stu[i] = chengji;
}
//及格
for (int i = 0; i < stu.Length; i++)
{
  // 不及格
  if (stu[i] < 60)
  {
    Console.WriteLine("第{0}学员不及格;", i + 1);
  }
}

for (int i = 0; i < stu.Length; i++)
{
  //及格
  if (stu[i] >= 60 && stu[i] < 80)
  {
    Console.WriteLine("第{0}学员及格;", i + 1);
  }
}

for (int i = 0; i < stu.Length; i++)
{
  //优秀
  if (stu[i] > 80)
  {
    Console.WriteLine("第{0}学员优秀;", i + 1);
  }
}

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion
#region ====== 球从10米落下,每次弹起80%,问第五次弹起的高度======
double gaodu = 10;
for (int i = 1; i <= 5; i++)
{
  gaodu = gaodu * 0.8;
  Console.WriteLine("第{0}次高度是{1}。", i, gaodu);
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion
#region ====== 司机看到里程表的数字是12321,问下一次对称数字出现是什么数字======
int shu = 12322;
int gw = 0;
int sw = 0;
int bw = 0;
int qw = 0;
int ww = 0;

while (shu > 12321)
{
  gw = shu % 10;
  sw = shu / 10 % 10;
  bw = shu / 100 % 10;
  qw = shu / 1000 % 10;
  ww = shu / 10000;
  f (gw == ww && sw == qw)
  {
    Console.WriteLine("对称数为{0}", shu);
    break;
  }
  shu++;
}
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion
#region ====== 存款利率是千分之三(年利率),每月会把利息加到本金上计算,存10000元 ,,第24个月存款多少======
//就是你存入银行的本金按利率计算的利息
//例如一年期银行利率为2.5%,就是你存入100元一年到期年得到100*2.5%=2.5元的利息
//例如半年期银行利率为2%,就是你存入100元半年到期时利息为100*2%/12个月*6个月=1元
double lx = 0;
double bj = 10000;
for (int i = 1; i <= 24; i++)
{
  lx = bj * 0.3 / 12;
  bj = lx + bj;
  Console.WriteLine("第{0}个月的存款为{1},利息为{2}", i, bj, lx);
}
Console.WriteLine("第24个月的存款为{0}", bj);

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
#endregion

posted @ 2016-04-19 12:22  雍家培  阅读(187)  评论(0编辑  收藏  举报