2014.8.25二分法,二维数组

 1 //二分法
 2 //假设顶一个已经排好序的数组,用户输入一个数,找出这个数的位置,没有则返回空
 3 int[] nums = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 4 int a = 0, b = nums.Length - 1, zj;
 5 Console.WriteLine("请输入要查找的数:");
 6 int n = Convert.ToInt32(Console.ReadLine());
 7 while (b >= a)
 8 {
 9     zj = (a + b) / 2;//中间数的下标
10     if (nums[zj] == n)
11     {
12         Console.WriteLine("找到了,在第{0}个", zj + 1);
13         break;
14     }
15     if (nums[zj] > n)
16     {
17         b = zj - 1;//把后面的数去掉
18     }
19     if (nums[zj] < n)
20     {
21         a = zj + 1;//把前面的数去掉
22     }
23 }
 1 //二维数组
 2 int[,] score = new int[3, 5];
 3 for (int i = 0; i < 3; i++)//循环每一行
 4 {
 5     Console.WriteLine("请输入第{0}位同学的成绩:", i + 1);
 6     score[i, 0] = i + 1;//学号
 7     //每一列需要从用户输入读取
 8     Console.Write("C#:");
 9     score[i, 1] = Convert.ToInt32(Console.ReadLine());
10     Console.Write("网页:");
11     score[i, 2] = Convert.ToInt32(Console.ReadLine());
12     Console.Write("数据库:");
13     score[i, 3] = Convert.ToInt32(Console.ReadLine());
14     score[i, 4] = score[i, 1] + score[i, 2] + score[i, 3];//总分
15 }
16 //冒泡排序,以总分成绩排名,score[i,4]
17 for (int i = 1; i <= 2; i++)
18 {
19     for (int j = 1; j <= 3 - i; j++)
20     {
21         if (score[j - 1, 4] < score[j, 4])
22         {
23 for (int k = 1; k <= 5; k++)//把每一行所有列里面的内容交换
24 {
25     int s = score[j - 1, k - 1];
26     score[j - 1, k - 1] = score[j, k - 1];
27     score[j, k - 1] = s;
28 }
29         }
30     }
31 }
32 //打印这个二维数组
33 Console.WriteLine("学号\tC#\t网页\t数据库\t总分");
34 for (int i = 0; i < 3; i++)
35 {
36     Console.Write(score[i, 0] + "\t");
37     for (int j = 1; j < 4; j++)
38     {
39         Console.Write(score[i, j] + "\t");
40     }
41
42     Console.Write(score[i, 4]);
43     Console.Write("\n");
44 }

输出结果为:

时间: 2024-07-29 22:50:47

2014.8.25二分法,二维数组的相关文章

二维数组的初始化,遍历

1 package com.baidu.java; 2 //2维数组的初始化 3 public class Array2 { 4 public static void main(String[] args) { 5 //1.静态初始化 6 int[][] aa=new int[][]{{3,4,5},{6,7,8,9},{1,2}}; 7 //2.1动态初始化 8 String[][] bb=new String[6][5];//想成6个小组,每个小组5个人 9 //2.2动态初始化 10 St

6.javaScript中的二维数组

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script type="text/javascript"> 7 //声明一维数组 8 var myarr = new Array(); 9 for (var i = 0; i < 3; i++) {

JavaScript 通过循环按执行顺序,做一个5&#215;5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角。

通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角.试编程. 基本思路: 1 var container_arr = []; 2 // 建立五个数组 3 for(var i = 0,count = 0 ; i < 5; i++){ 4 var arr = []; 5 for(var k = 0 ; k < 5 ; k ++){ 6 // 这个内层循环会执行 5 * 5 次 7 count ++; //count会从1 ~ 25 8 arr.push(co

Python学习笔记 之 递归、二维数组顺时针旋转90&#176;、正则表达式

递归.二维数组顺时针旋转90°.正则表达式 1.   递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多容易造成栈溢出 要求: 每次调用递归规模上有所减小 前一次为后一次做准备 规模较小时必须直接给出解答而不再进行递归调用 例子:递归实现二分法 1 def searchMyData(mydate,a1): 2 mid = int(len(mydate)/2) 3 if mid >= 1: 4 if m

0709 C语言常见误区----------二维数组做参数

总结: 1.二维数组名是指向一位数组的指针,本例中,其类型为 int (*)[4],在传递的过程中丢失了第一维的信息,因此需要将第一维的信息传递给调用函数. 关于二维数组名代表的类型,可通过下面的例子看出. 1 /************************************************************************* 2 > File Name: test_2arr.c 3 > Author:Monica 4 > Mail:[email prot

数组属性的习题、Arrays工具、二维数组

一.数组的练习 1.声明一个char类型的数组, 从键盘录入6个字符: [1]遍历输出 [2]排序 [3]把char数组转化成一个逆序的数组. 1 import java.util.Scanner; 2 public class Operation01{ 3 public static void main (String[] args){ 4 char[] zifu = new char[6]; 5 Scanner car = new Scanner(System.in); 6 char tem

java基础:java中的二维数组

二维数组的概念: 一个元素为一维数组的数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的元素有多少个. 注意: A:以下格式也可以表示二维数组 a:数据类型 数组名[][] = new 数据类型[m][n]; b:数据类型[] 数组名[] = new 数据类型[m][n]; B:注意下面定义的区别 int x; int y; int x,y; int[] x; int[] y[]; int[] x,y[

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

Java打印M图形(二维数组)——(九)

对于平面图形输出集合图形与数字组合的,用二维数组.先在Excel表格中分析一下,找到简单的规律.二维数组的行数为行高,列数为最后一个数大小. 对于减小再增大再减小再增大的,可以用一个boolean标志其是增加还是减小状态,减到最小时将其标志设为相反的并改变这时的初值大小. 效果: Excel中分析 Java代码: 1 package Java_Test; 2 3 public class PrintM { 4 5 /* 6 7 3 7 8 2 4 6 8 9 1 5 9 10 平面图形(二维数组