1. 程式人生 > >筆試數組輸入模板

筆試數組輸入模板

pack 多少 變量 oid logs .com sys public array

  IT筆試中算法題屬於必備,為了幾句輸入代碼浪費時間實在不應該,大家也都是從一開始就常常使用輸入輸出寫簡單的程序。

  一般情況下筆試中的輸入很符合常理,讓你接受幾個數字或其他變量。但是常常會有讓你接受數組的情況。

  在數組的情況中,一般會事先給你一個數字標示數組大小然後告訴你每個數是多少。在二般的情況下則直接告訴你數組內容是什麽。

  眾所周知,Java支持動態數組,C++中又可以使用vector容器,Python本人不懂但也可以。C語言這個很尷尬,用指針也是可以變相實現動態數組的,但是本身自帶的庫函數相對少,用來做筆試題有些尷尬。

1、 一般情況

  給你兩行數,或者一行數,前幾個數中有數組的大小。形如:

3             //數組大小
4 5 6         //數組內容

1.1 Java

1.1.1 Java動態數組

在Java中因為支持動態數組,所以在一般情況下,先定義一個接受數組大小的變量,而後建立動態數組。

 1 package com.zdt.com;
 2 
 3 import java.util.Arrays;
 4 import java.util.Scanner;
 5 
 6 public class main {
 7 
 8     public static void main (String args[]){
 9             Scanner scanner=new
Scanner(System.in); 10 int m=scanner.nextInt(); 11 int[] v = new int[m]; 12 for(int i =0; i<v.length;i++){ 13 v[i]=scanner.nextInt(); 14 } 15 scanner.close(); 16 } 17 }

1.2 C++

  在C++中雖然支持vector容器,但是不支持動態數組的,所以我們有兩種思路來解決。

1.2.1 C++動態數組實現

  利用指針構建動態數組,如果有興趣看動態數組可以看這篇博客學習下。http://blog.csdn.net/bzhxuexi/article/details/17230073

1.2.2 C++ vector實現

  利用輸入控制接收數組元素進入vector容器。

  vector容器並不需要事先定義大小,每次新建一個vector時都會先在內存中分配一塊內存,在存儲元素時,使用push_back即可從最後插入元素,如果這塊內存不夠時會分配給它新的更大的一塊兒內存,將原來的元素復制過去後繼續使用。

 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <vector>
 4 using namespace std;
 5 
 6 int _tmain(int argc, _TCHAR* argv[])
 7 {
 8     int num;
 9     cin >> num;
10     vector<int> nums;
11     int temp_num;
12     for (int i = 0; i < num; i++)
13     {
14         cin >> temp_num;
15         nums.push_back(temp_num);
16     }
17     return 0;
18 }

喜歡用vector實現也是因為vector也有好多函數可以用。

2、 二般情況

直接是數組的內容。

1 2 3 4 5 6             //數組內容

2.1 Java

2.1.1 Java輸入控制

  在二般情況下,我們不知道數組大小是多少,所以我們只能根據行來接收,一行為一個數組內容,一般為空格隔開

2.2 C++

2.2.1 C++輸入控制

  本方法參照的是博客:http://blog.csdn.net/ldz1943/article/details/46311059

 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <vector>
 4 using namespace std;
 5 
 6 int _tmain(int argc, _TCHAR* argv[])
 7 {
 8     int temp_num;
 9     char temp_ch;
10     vector<int> nums;
11     while ((temp_ch = cin.get()) != \n)
12     {
13         cin.putback(temp_ch);
14         cin >> temp_num;
15         nums.push_back(temp_num);
16     }
17     return 0;
18 }

筆試數組輸入模板