C语言
#include<stdio.h>
int main(){
int i,j;
scanf("%d",&i);
int m[i];
for(j=0;j<i;j++){
scanf("%d",&m[j]);
}
for(j=0;j<i;j++){
printf("%d ",m[j]);
}
printf("\n");
}
运行结果:
4
1 2 3 4
1 2 3 4
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
在C语言中使用数组必须先进行定义
C++语言
#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
int main ()
{
int n[ 10 ]; // n 是一个包含 10 个整数的数组
// 初始化数组元素
for ( int i = 0; i < 10; i++ )
{
n[ i ] = i + 100; // 设置元素 i 为 i + 100
}
cout << "Element" << setw( 13 ) << "Value" << endl;
// 输出数组中每个元素的值
for ( int j = 0; j < 10; j++ )
{
cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
}
return 0;
}
运行结果:
Element Value
0 100
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109
C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。
如果不是内置类型,则不管其在哪定义,自动调用其默认构造函数为其初始化,若该类无默认构造函数则会报错。
C++规定,在声明和初始化一个二维数组时,如果对二维数组的所有元素都赋值,则第一维(行数)可以省略;
JAVA语言
package 数组;
import java.util.Scanner;
public class 数组 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int[] myList=new int[5];
System.out.print("Enter the numbers: ");
for(int i=0;i<myList.length;i++) {
myList[i]=input.nextInt();
}
for(int i=0;i<myList.length;i++) {
System.out.print(myList[i]+" ");
}
}
}
运行结果:
Enter the numbers: 2 4 2 52 5
2 4 2 52 5
在Java中,无论使用数组或容器,都有边界检查。如果越界操作就会得到一个RuntimeException异常。
在定义的时候需要new给其分配存储空间。例如:int a[]=new int[10];
JAVA数组的特点:动态数组,具有长度属性length,引用数据类型
JAVA SCRIPT语言
var needX=[1/2,3/5,3/5,1/2];
var needY=[1/10,1/5,7/20,9/20];
var index=0;
function drawStar( ctx , r , R , circlePoint , rot , style){
ctx.beginPath();
for( var i = 0 ; i < 5 ; i ++){
//确定外圆的点
ctx.lineTo(Math.cos((18+72*i - rot)/180*Math.PI) * R + circlePoint.x,
- Math.sin((18+72*i - rot )/180*Math.PI) * R + circlePoint.y);
//确定内圆的点
ctx.lineTo(Math.cos((54+72*i - rot)/180*Math.PI) * r + circlePoint.x ,
- Math.sin((54+72*i - rot )/180*Math.PI) * r + circlePoint.y);
}
ctx.closePath();
ctx.lineWidth = style.lineWidth;
if(!style.isFill){
ctx.strokeStyle = style.color;
ctx.stroke();
}
else{
ctx.fillStyle = style.color;
ctx.fill();
}
}
for(index=0;index<4;index++){
ctx.save();
ctx.translate(canvas.height*needX[index],canvas.height*needY[index]);//平移
ctx.scale(0.75,0.75);//缩放
ctx.rotate(Math.PI/8*(index+1));//旋转
style1.color="yellow";
drawStar(ctx,r/2,R/2,circlePoint,rot,style1);
ctx.restore();
}
js中数组定义时无需指定数据类型,数组定义时可以无需指定数组长度,数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)。
js数组灵活性很强,但是安全度大大降低。
Python语言
list1=['physics','chemistry',1997,2000]
listt2=[1,2,3,4,5,6,7]
print"list1[0]",list1[0]
print"list2[1:5]:",list2[1:5]
for each in list2:
print(each)
运行结果:
python
1.用list和tuple等数据结构表示数组
一维数组:list=[1,2,3,4]
二维数组:list=[[1,2,3],[4,5,6],[7,8,9]]
对于数值运算来说这种结构显然比较浪费内存和CPU计算时间
2.用array模块:array模块需要加载,而且运用的较少。
通过array函数创建数组(数组中的元素可以不是同一种类型),array.array(‘B’,range(5)) >>array(‘B’,[1,2,3,4,5])
它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。