2014.8.22数组

数组:内存 连续 同一类数据的一块区域

分类:一维数组    二维数组(两个下标)    三维数组

一维数组:

1.定义  int[] a=new int[5];//a[0]元素,0下标,长度为5,最大下标是4

2.赋值  a[0] = 12;

3.取值  int b = a[0];

4.运算

a.Length  数组a的长度

eg:

 1 //球场上有10个球员,裁判给球员打分(0-9),赋值后,求总分、平均分
 2 //把最高分和最低分求出来
 3 try
 4 {
 5     Console.WriteLine("请输入10个球员的成绩:");
 6     int[] players = new int[10];//new是在内存中创建一个数组,把他赋给定义的players数组
 7     for (int i = 0; i < players.Length; i++)
 8     {
 9         //把每次输入的值赋给数组元素
10         players[i] = Convert.ToInt32(Console.ReadLine());
11     }
12     int sum = 0;
13     double avg;
14     int max = players[0], min = players[0];//从第一个开始比较
15     int max_i = 0, min_i = 0;//用于存放球员号码
16     for (int i = 0; i < players.Length; i++)
17     {
18         sum = sum + players[i];//遍历数组所有元素,把每个元素相加
19     }
20     avg = (double)sum / players.Length;//强制转换为double型
21     for (int j = 1; j < players.Length; j++)//从players[1]开始和max min比较
22     {
23         if (max < players[j])
24         {
25       max = players[j];//两两比较,把大的值赋给max
26       max_i = j;
27         }
28         if (min > players[j])
29         {
30       min = players[j];
31       min_i = j;
32         }
33     }
34     Console.WriteLine("总分为{0},平均分为{1},", sum, avg);
35     Console.WriteLine("最高分为{0},球员号码为{1}", max, max_i + 1);
36     Console.WriteLine("最低分为{0},球员号码为{1}", min, min_i + 1);
37 }
38 catch
39 {
40     Console.WriteLine("输入有误,请重新启动程序!");
41 }
 1 //青歌赛 10个评委给一个歌手打分,去掉一个最高分,去掉一个最低分,求平均得分
 2 int[] fen = new int[10];
 3 for (int i = 0; i < fen.Length; i++)
 4 {
 5     Console.Write("请输入第{0}个评委的打分:", fen[i] + 1);
 6     fen[i] = Convert.ToInt32(Console.ReadLine());
 7 }
 8 int max = fen[0], min = fen[0];//最高分和最低分分别赋为fen[0]
 9 for (int i = 1; i < fen.Length; i++)
10 {
11     if (max < fen[i])
12     {
13         max = fen[i];
14     }
15     if (min > fen[i])
16     {
17         min = fen[i];
18     }
19 }
20 int sum = 0;
21 for (int i = 0; i < fen.Length; i++)
22 {
23     sum = sum + fen[i];
24 }
25 double result = (sum - max - min) / (fen.Length - 2) * 1.0;//计算平均分
26 Console.WriteLine("选手最后得分为" + result);
 1 //5个班长候选人(0-4),20人投票,统计得票最多的代号和票数选为班长
 2 try
 3 {
 4     int[] names = new int[5];
 5     int num;
 6     for (int i = 0; i < 20; i++)
 7     {
 8         Console.Write("请输入要投给谁一票(0-4):");
 9         num = Convert.ToInt32(Console.ReadLine());
10         if (num >= 0 && num <= 4)
11         {
12       names[num]++;//投给谁的票,累加起来
13         }
14         else
15         {
16       Console.WriteLine("废票!");
17         }
18     }
19     int max = names[0];
20     int max_i = 0;//存放最大值的下标,即票最多的候选人
21     for (int i = 1; i < names.Length; i++)
22     {
23         if (max < names[i])
24         {
25       max = names[i];
26       max_i = i;
27         }
28     }
29     Console.WriteLine("班长是{0},票数为{1}", max_i, max);
30 }
31 catch
32 {
33     Console.WriteLine("输入有误,请重新运行程序!");
34 }
 1 //青歌赛,去掉两个最高分,去掉两个最低分,求平均分
 2 int[] fen = new int[10];
 3 for (int i = 0; i < fen.Length; i++)
 4 {
 5     Console.Write("请输入第{0}个评委的打分:", fen[i] + 1);
 6     fen[i] = Convert.ToInt32(Console.ReadLine());
 7 }
 8 int sum = 0;
 9 for (int i = 0; i < fen.Length; i++)
10 {
11     sum = sum + fen[i];
12 }
13 int max1 = fen[0], max2 = fen[1];
14 int min1 = fen[0], min2 = fen[1];
15 for (int i = 1; i < fen.Length; i++)
16 {
17     if (max1 < fen[i])
18     {
19         max2 = max1;//max2得分次高
20         max1 = fen[i];
21     }
22     if (min1 > fen[i])
23     {
24         min2 = min1;
25         min1 = fen[i];
26     }
27 }
28 double result = (sum - max1 - max2 - min1 - min2) / (fen.Length - 4) * 1.0;
29 Console.WriteLine("选手最后得分为" + result);
 1 //彩票生成器(36选7),不能产生重号
 2             int[] nums = new int[7];
 3             Random nnn = new Random();
 4             for (int i = 0; i < nums.Length; i++)
 5             {
 6                 nums[i] = nnn.Next(36);
 7                 for (int j = i; j >= 0; j--)
 8                 {
 9                     if (j == 0)//第一个随机数直接打印
10                     {
11                         Console.Write(nums[i] + 1 + " ");//36个随机数包括(0-35),所以要+1
12                         break;
13                     }
14                     if (nums[i] == nums[j - 1])//随机数i与前面的数比较,如果相等则跳出循环
15                     {
16                         i = -1;//因为跳出循环会执行i++语句,所以在此赋予i值为-1
17                         Console.Clear();//清屏,重新生成随机数
18                         break;
19                     }
20                     while (j == 0)//i与前面每个数都不一样,那么打印这个随机数
21                     {
22                         Console.Write(nums[i] + 1 + " ");
23                         j--;
24                     }
25                 }
26             }
时间: 2024-07-31 14:34:44

2014.8.22数组的相关文章

【2014.6.22】

这几天一直在看世界杯,看到很多同学压钱,就跟着压了,(当然是看到可以天上掉馅饼才……). 这几天的钱就像流水似的往外流(虽然没那么夸张). 不过让我再次体会到了 永远期待美好的事情发生,但不要期望天上掉馅饼,no pains,no  gains. [2014.6.22],布布扣,bubuko.com

[2014.5.22][UBUNTU]Ubuntu与Windows系统时间不同步的问题

安装Ubuntu+Windows双系统时会遇到Windows和Ubuntu系统时间不同步的问题,这是因为Windows系统默认读取主板bios等硬件系统时间作为OS的当地时间;而MAc,Linux类的OS以主板bios等硬件系统时间作为UTC时间,然后操作系统的时间以UTC为标准按照使用者的时区设置加加减减.这就造成了中国用户会出现一个很有趣的现象:Ubuntu上的时间会比windows上的快8小时(至于是怎么算的 请童鞋自己掰手指头;是不是寓意Ubuntu快windows一筹?). 解决这个问

2014/08/22 – SVG

一.项目功能需求:将 HTML 中 span 元素集合映射成 SVG 格式文件. 参数: span 的绝对定位坐标和 transform 的集合,贝塞尔曲线的锚点绝对定位坐标和控制点绝对定位坐标(根据曲线路径绘制 span ),span 集合父容器的宽度和高度. 输出: svg 的字符串形式. 二.知识点:由于涉及到 css 的 transform 样式,所以会用 Matrix 的相关理论知识. 1. 沿着路径变化的文字: svg 中提供了 <textPath> 元素来产生文字沿着某条事先定义

Wikioi上的C语言试题分析【2014.7.22】

Question [1] 题目描述 Description 输入两个整数A和B,输出他们的和 输入描述 Input Description 输入为一行,包含两个整数A,B.数据保证A与B都在2^31-1的范围内 输出描述 Output Description 输入A与B的和,数据保证A与B的和在2^31-1的范围内 样例输入 Sample Input 1 3 样例输出 Sample Output 4 pass code: #include <stdio.h> int main() { int

2014/9/22

1System.in 1 public class wori //先用InputStreamReader套System.in,再用BufferedReader套是常用方法 2 { 3 public static void main(String args[]) 4 { 5 InputStreamReader a = new InputStreamReader(System.in); // System.in是InputStream父类的引用 6 BufferedReader b = new Bu

银保项目总结2014.8.22

自我分析见证自己的成长.. 银保项目总结: 1.开发前没有系统的分析所有的流程 2.思考问题思路不清晰 3.很多东西忘记了,导致效率底下,开发工具使用,不熟悉 学习技巧: 一旦有一个操作,就要分析操作的所有流程; 所有的web项目都是 1.验证数据 2.清除数据 3.获值(jquery) 4.传入后台(form表单,ajax,a标签href,action) 5.后台处理传入数据库 6.数据库db操作函数,复用select_paramIndex_returnParam 7.传值(out.print

2014.8.22我大一的线性代数学习

我的大一的线性代数:借此怀念一下我大一的线性代数的学习 一.扯扯虚的 进入大一,学的是计算机专业,说是计算机专业,不过看看大一的课程,就是各种数学,其中就有线性代数. 线性代数上课,最重要的就是讲怎么学数学,嗯,就是讲故事!!第一节课是说"兵法"和"剑法".剑法是什么,是"一人敌",再怎么练只能是一个人打,威力很小:"兵法"是"万人敌",学习"兵法",统兵打仗,能改变大局."兵

Java 1.18-1.22 数组及方法调用

在对数组开始认知的时候,我居然还没有熟练应用for循环,简直失败! 在认知方法调用的时候,数组的练习稍微少了点,可能接收的太快,思维暂时没跟上. 这周末,我对之前的for循环,数组进行了大量的操作并且参考各类联系,也算明白一二了,但还是不能使用的熟练,也许需要更多的时间来积累使用的经验和熟练度.continue和break的用法掌握了, 听课再多,不及自己多思考.不专研不思考,任谁也不会有所进展.尽管我零基础,但也是抱有想法的学习. 睡觉前,我又整理了一下思路,看了从头到尾的已学基础. 晚安!世

22 数组的常用方法

package com.hikvision.java.array; import java.util.ArrayList; import java.util.Arrays; /** 关于数组的常用处理方法 */ public class ArrayUtils { public static void main(String[] args) { initArray(); System.out.println("--------------------------------"); int