c語言數組詳解
❶ c語言怎麼定義數組
首先雙擊啟動visual studio 2015,如果你使用的是其他版本的vs也是可以的。單擊「文件」-「新建」-「項目」,選擇visual c++,然後是「空項目」。
12怎麼下載visual studio2015及安裝教程
❷ C語言中如何定義數組
數組定義的三種方式
1、第一種
int []a = newint[5];
a[0] = 10;
2、第二種
int []c = newint[]{1,2,3};
3、第三種
int []i ={1,2,3,4};
4、錯誤的寫法
int []i1 = [1,2,3,4];
System.out.println(Arrays.toString(c));
5、總之,具體的元素不能被【】包裹。【】包裹的應該是數組的數量。
(2)c語言數組詳解擴展閱讀
數組的注意事項:
1、 數組中每個元素的數據類型必須相同,對於inta[4];,每個元素都必須為 int。
2、 數組長度 length最好是整數或者常量表達式,
3、 訪問數組元素時,下標的取值范圍為 0 ≤ index < length,
參考資料
網路-數組
❸ c語言,數組定義
你好
一維數組
一維數組的聲明包括如下結構:類型 變數名[N],其中N是你要定義的一維數組長度。
下面我們就通過一個例子聲明一個int類型的數組,並且進行數組的賦值以及輸出。
在cpp文件main()函數中輸入以下語句
int a[10];//聲明一維整形數組,數組長度為10
for (int i =0;i<10;i++)
{
a[i]=i;
cout<<i<<endl;
}
return 0;
然後ctrl+F5運行
我們可以看到如下結果:在i行輸出的是a[i]
二維數組
二維數組的聲明結構:類型 變數名[M][N],其中M代錶行數,N代表列數,下面我們也通過一個例子聲明一個整形(int)的二維數組,並且進行相應的 賦值與輸出。
在main()函數中輸入以下代碼
int a[4][5];//二維數組聲明
int i,j;
for ( i =0;i<4;i++)
{
for (j=0;j<5;j++)
{
a[i][j]=(i+1)+(j+1);
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
然後ctrl+F5運行
結果輸出的內容是二維數組的每個元素,二維數組就是矩陣,數組的每個元素是相應的行號和列號的和
滿意請採納
❹ C語言數組
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<malloc.h>
voidsx(int*nums,intlen);//傳參數組、長度功能:將數組按升序排列
voidpsl(int*nums,intlen);//列印
intmain()
{
intn,i,*nums;
printf("輸入n的值(小於等於20):");
scanf("%d",&n);
nums=(int*)malloc(sizeof(int)*(n+1));
printf("生成隨機%d個2位數:",n);
srand(time(NULL));
for(i=0;i<n;i++)
nums[i]=rand()%100;
sx(nums,n);
printf("
升序排列後的數列為:");
psl(nums,n);
printf("
輸入要插入的數字:");
scanf("%d",&nums[n]);
sx(nums,n+1);
printf("插入後的升序數列為:");
psl(nums,n+1);
return0;
}
voidpsl(int*nums,intlen)
{
inti;
for(i=0;i<len;i++)
printf("%d",nums[i]);
}
voidsx(int*nums,intlen)//傳參數組、長度功能:將數組按升序排列
{
intnSave,i,j;
for(i=0;i<len;i++)
{
for(j=i;j<len;j++)
{
if(nums[i]>nums[j])
{
nSave=nums[i];
nums[i]=nums[j];
nums[j]=nSave;
}
}
}
}
❺ c語言數組怎麼定義
C語言中,同變數一樣;數組也必須先定義後使用。
一維數組的定義形式:
類型標識符 數組名[常量表達式];例如int a[10]; 其中a為地址常量。
如變數的定義一樣,int a ;double a;float a等;數組的定義只是把後面的變數名改為數組名而已。
int a[10]就是定義了一個數組名為a的數組;此數組有10個元素。其中各元素從a[0]到a[9];並沒有a[10]元素。下面列舉一個。
❻ c語言中的數組的定義是什麼
在C語言中使用數組必須先進行定義。
一維數組的定義方式為:
類型說明符 數組名 [常量表達式];
其中:
類型說明符是任一種基本數據類型或構造數據類型。
數組名是用戶定義的數組標識符。
方括弧中的常量表達式表示數據元素的個數,也稱為數組的長度。
例如:
int a[10]; 說明整型數組a,有10個元素。
float b[10],c[20]; 說明實型數組b,有10個元素,實型數組
c,有20個元素。
char ch[20]; 說明字元數組ch,有20個元素。
❼ C語言中的數組什麼意思
所謂數組,是有序的元素序列。數組是在程序設計中,為了處理方便, 把具有相同類型的若干元素按無序的形式組織起來的一種形式。這些無序排列的同類數據元素的集合稱為數組。
比如油煙機的風扇轉速會和工作的模式之間有一定的關系,那麼我們就可以把它的工作模式和一維數組的下標對應起來,我們將具體的轉速放在數組中,這樣的話就非常方便我們在日後查詢。
再比如說家中的冷暖燈光控制這方面,色溫燈里會有兩個燈珠,分別對應的是冷光和暖光,選擇不同的模式燈光的顏色就不同,我們就可以將這兩種燈光的亮度pwm值事先放在二維數組中,以便調用調光。
在程序中合理地使用數組,會使程序的結構比較整齊,而且可以把較為復雜的運算,轉化成簡單的數組來表示。
(7)c語言數組詳解擴展閱讀:
一、使用規則:
1、可以只給部分元素賦初值。當{ }中值的個數少於元素個數時,只給前面部分元素賦值。
2、只能給元素逐個賦值,不能給數組整體賦值。
(請注意:在C、C#語言中是這樣,但並非在所有涉及數組的地方都這樣,資料庫是從1開始。)
3、若不給可初始化的數組賦初值,則全部元素均為0值。
4、假如給全部元素賦值,則在數組說明中, 可以不給出數組元素的個數。
動態賦值可以在程序執行過程中,對數組作動態賦值。這時可用循環語句配合scanf函數逐個對數組元素賦值。
二、表示方法:
數組元素是組成數組的基本單元。
數組元素也是一種變數, 其標識方法為數組名後跟一個下標。下標表示了元素在數組中的順序號。數組元素的一般形式為:數組名[下標] 其中的下標只能為整型常量或整型表達式。
如為小數時,C編譯將自動取整。例如,a[5],a[i+j],a[i++]都是合法的數組元素。數組元素通常也稱為下標變數。必須先定義數組, 才能使用下標變數。在C語言中只能逐個地使用下標變數, 而不能一次引用整個數組。
❽ C語言中的數組是什麼意思
把具有相同數據類型的若干變數按有序的形式組織起來,
以便於程序處理,這些數據元素的集合就是數組,按照數組
元素的類型不同,可分為:數值數組、字元數組、指針數組
結構數組等各種類別。
數組說明的一般形式為:
類型說明符 數組名[常量表達式],......;
其中類型說明符可以是任一種基本數據類型或構造數據類型
數組名是定義的數組標識符。常量表達式表示數據元素的個
數,也就是數組的長度。
對數組類型的說明應注意:
1)數組的類型實際上是數組元素的取值類型。
2)數組名的書寫應符合標識符的書寫規范。
3)數組名不能與其他變數名相同。
4)常量表達式表示數組元素的個數,但是其下標從0開始計算
5)不能在方括弧中用變數來表示元素的個數,但是可以用符號
常數或常量表達式。
6)允許在同一個類型說明中,說明多個數組和多個變數。
數組元素的表示方法
一般比較簡單就是數組名[下標]來引用,先定義後用,如果
是小數的話,直接自動取整。
數組賦值分為:初始化賦值和動態賦值
初始化賦值一般形式為:
static 類型說明符 數組名[常量表達式]={值,值......};
static表示靜態存儲類型,c語言規定只有靜態存儲數組和外部數組
才可做初始化賦值。
c語言對數組的初始化賦值還有幾個規定:
1)可以只給部分元素賦值。
2)只能給元素逐個賦值,不能給數組整體賦值。
3)如不給可初始化的數組賦初值,在在數組說明中,可以不給出數組
元素的個數。
下面看一下多維數組
主要看一下二維數組,其他的就可以用二維數組類推得到
二維數組的類型說明的一般形式是:
類型說明符 數組名[常量表達式1][常量表達式2]...;
在c語言中二維數組是按行排列的
二維數組的表示方法:
數組名[下標][下標]
二維數組的初始化
二維數組初始化也是在類型說明時給各下標變數賦以初值。 二維數組可
按行分段賦值,也可按行連續賦值。
二維數組的初始化還應該注意:
1)可以只對部分元素賦初值,未賦初值的元素自動取為0。
2)如對全部元素賦初值,則第一維的長度可以不給出。
字元數組:
用來存放字元變數的數組稱為字元數組。
C語言允許用字元串的方式對數組作初始化賦值。例如:
static char c[]={'c', ' ','p','r','o','g','r','a','m'}; 可寫為:
static char c[]={"C program"}; 或去掉{}寫為:
sratic char c[]="C program";
用字元串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字元串結
束標志'\0'。上面的數組c在內存中的實際存放情況為: C program\0`\0'是
由C編譯系統自動加上的。由於採用了`\0'標志,所以在用字元串賦初值時一
般無須指定數組的長度, 而由系統自行處理。在採用字元串方式後,字元數
組的輸入輸出將變得簡單方便。 除了上述用字元串賦初值的辦法外,還可用
printf函數和scanf函數一次性輸出輸入一個字元數組中的字元串, 而不必
使用循環語句逐個地輸入輸出每個字元。
void main()
{
static char c[]="BASIC\ndBASE";
printf("%s\n",c);
} printf("%s\n",c);
注意在本例的printf函數中,使用的格式字元串為"%s", 表示輸出的是一
個字元串。而在輸出表列中給出數組名則可。 不能寫為: printf("%s",c[]);
void main()
{
char st[15];
printf("input string:\n");
scanf("%s",st);
printf("%s\n",st);
} char st[15];
本例中由於定義數組長度為15, 因此輸入的字元串長度必須小於15,
以留出一個位元組用於存放字元串結束標志`\0`。 應該說明的是,對一個字
符數組,如果不作初始化賦值,則必須說明數組長度。還應該特別注意的是,
當用scanf函數輸入字元串時,字元串中不能含有空格,否則將以空格作為串
的結束符。例如運行例4.8,當輸入的字元串中含有空格時,運行情況為:
input string:this is a book this 從輸出結果可以看出空格以後的字元
都未能輸出。 為了避免這種情況, 可多設幾個字元數組分段存放含空格的
串。程序可改寫如下:
Lesson
void main()
{
char st1[6],st2[6],st3[6],st4[6];
printf("input string:\n");
scanf("%s%s%s%s",st1,st2,st3,st4);
printf("%s %s %s %s\n",st1,st2,st3,st4);
}
本程序分別設了四個數組, 輸入的一行字元的空格分段分別裝入四個數組。
然後分別輸出這四個數組中的字元串。在前面介紹過,scanf的各輸入項必須以
地址方式出現,如 &a,&b等。但在例4.8中卻是以數組名方式出現的,這是為
什麼呢?這是由於在C語言中規定,數組名就代表了該數組的首地址。 整個
數組是以首地址開頭的一塊連續的內存單元。如有字元數組char c[10],在
內存可表示如圖4.2。設數組c的首地址為2000,也就是說c[0]單元地址為2000。
則數組名c就代表這個首地址。因此在c前面不能再加地址運算符&。如寫作
scanf("%s",&c);則是錯誤的。 在執行函數printf("%s",c) 時,按數組名c
找到首地址,然後逐個輸出數組中各個字元直到遇到字元串終止標志'\0'為止。
字元串常用函數:
用於輸入輸出的字元串函數在使用前應包含頭文件"stdio.h",使用其他字元串
函數則應包含頭文件"string.h".下面介紹幾個常用的字元串函數:
1)字元串輸出函數 puts 格式:puts(字元數組名) 功能:把字元數組中的字元
串輸出到顯示器。
#include"stdio.h"
main()
{
static char c[]="BASIC\ndBASE";
puts(c);
}
2)字元串輸入函數gets 格式:gets(字元數組名) 功能:從標准輸入設備上
輸入一個字元串。
#include"stdio.h"
main()
{
char st[15];
printf("input string:\n");
gets;
puts;
}
tips:gets函數並不以空格作為字元串輸入結束的標志,而只是以回車作為輸入
結束,這是與scanf不同的部分
3)字元串連接函數strcat 格式:strcat(字元數組名1,字元數組名2)
功能:把字元數組2中的字元串連接到字元數組1中字元串後面,並刪去字元串
1後的串標志"\0",本函數返回字元數組1的首地址。
#include"string.h"
main()
{
static char st1[30]="My name is ";
int st2[10];
printf("input your name:\n");
gets(st2);
strcat(st1,st2);
puts(st1);
}
4)字元串拷貝函數strcpy 格式:strcpy(字元數組名1,字元數組名2)
功能:把字元數組2中的字元串拷貝到字元數組1中,串結束標志 "\0"也一同
拷貝,字元數組2也可以是一個字元常量,就相當於把一個字元串賦予一個字元數組
#include"string.h"
main()
{
static char st1[15],st2[]="C Language";
strcpy(st1,st2);
puts(st1);
printf("\n");
}
5)字元串比較函數strcmp格式:strcmp(字元數組1,字元數組2) 功能:
按照ASCII碼順序比較兩個數組中的字元串,並有函數返回值返回比較結果
#include"string.h"
main()
{
int k;
static char st1[15],st2[]="C Language";
printf("input a string:\n");
gets(st1);
k=strcmp(st1,st2);
if(k==0) printf("st1=st2\n");
if(k>0) printf("st1>st2\n");
if(k<0) printf("st1<st2\n");
}
6)測字元串長度的函數strlen 格式:strlen(字元數組名) 功能:
測字元串的實際長度(不含字元串結束標志"\0")並作為函數返回值
#include"string.h"
main()
{
int k;
static char st[]="C Language";
k=strlen;
printf("The lenth of the string is %d\n",k);
}
程序舉例:
例一:
main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j]) {p=j;q=a[j];}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{for(s=9;s<=i;s--) a[s+1]=a[s];<br>break;}
a[i]=n;
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
例二:
main()
{
static int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};
int b[3],i,j,l;
for(i=0;i<=2;i++)
{
l=a[i][0];
for(j=1;j<=3;j++)
if(a[i][j]>l) l=a[i][j];
b[i]=l;
}
printf("\narray a:\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=3;j++)
printf("%5d",a[i][j]);
printf("\n");
}
printf("\narray b:\n");
for(i=0;i<3;i++)
printf("%5d",b[i]);
printf("\n");
}
例三:
void main()
{
char st[20],cs[5][20];
int i,j,p;
printf("input country's name:\n");
for(i=0;i<5;i++)
gets(cs[i]);
printf("\n");
for(i=0;i<5;i++)
{
p=i;strcpy(st,cs[i]);
for(j=i+1;j<5;j++)
if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}
if(p!=i)
{strcpy(st,cs[i]);<br>strcpy(cs[i],cs[p]);<br>strcpy(cs[p],st);<br>}
puts(cs[i]);
printf("\n");
❾ c語言如何定義數組
c語言定義數組的方法是:C語言中,同變數一樣;數組也必須先定義後使用。一維數組的定義形式。
1、類型標識符,數組名[常量表達式];例如int a[10];其中a為地址常量。
2、如變數的定義一樣,inta;double a;floata等;數組的定義只是把後面的變數名改為數組名而已。
3、int a[10]就是定義了一個數組名為a的數組;此數組有10個元素。其中各元素從a[0]到a[9];並沒有a[10]元素。
❿ C語言數組怎麼理解
基本上是對的,scanf()里的參數就是變數的地址數組名你可以理解為這個數組的起始地址(第一個元素的地址),比如你這里的a,它就相當於是&a[0],a+i就是第i個元素的地址,所以要想給這個數組賦值,還可以這樣