C語言--數(shù)組-創(chuàng)新互聯(lián)

數(shù)組
        • 一.數(shù)組
        • 二.一維數(shù)組
          • 1.定義一維數(shù)組
          • 2.引用一維數(shù)組
          • 3.初始化一維數(shù)組
            • (1).全部賦值
            • (2).部分賦值
            • (3).全部賦為0
            • (4).數(shù)據(jù)個數(shù)確定可不指定數(shù)組長度
          • 4.例子
        • 三.二維數(shù)組
          • 1.定義二維數(shù)組
          • 2.引用二維數(shù)組
          • 3.二維數(shù)組的初始化
            • (1)分行賦初值
            • (2)整體賦值
            • (3)部分賦值
            • (4)全部賦值
          • 4.舉例
        • 四.字符數(shù)組
          • 1.定義字符數(shù)組
          • 2.初始化字符數(shù)組
          • 3.引用字符元素中的元素
          • 4.字符串和字符串結(jié)束標志
            • 使用字符串常量使字符數(shù)組初始化
          • 5。字符串的輸入輸出
          • 6.使用字符串處理函數(shù)
            • 1.puts函數(shù)--輸出字符串
            • 2.gets函數(shù)--輸入字符串
            • 4.strcat--字符串連接函數(shù)
            • 4.strcpy和strncpy函數(shù)--字符串復(fù)制函數(shù)
            • 5.strcmp函數(shù)--字符串比較函數(shù)
            • 6.strlen函數(shù)——測字符串長度的函數(shù)
            • 7.strupr函數(shù)和strlwr函數(shù)——轉(zhuǎn)化為大小寫的函數(shù)
        • 五.實例

創(chuàng)新互聯(lián)一直在為企業(yè)提供服務(wù),多年的磨煉,使我們在創(chuàng)意設(shè)計,成都全網(wǎng)營銷推廣到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務(wù)價值,為企業(yè)制作有用的創(chuàng)意設(shè)計體驗。核心團隊擁有超過十余年以上行業(yè)經(jīng)驗,涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)BGP機房服務(wù)器托管、成都App制作、手機移動建站、網(wǎng)頁設(shè)計、網(wǎng)絡(luò)整合營銷。一.數(shù)組

二.一維數(shù)組

一維數(shù)組是數(shù)組中最簡單的,它的元素只需要用數(shù)組名加一個下標,就能唯一地確定元素。如s[9]就是一個一維數(shù)組中的元素。s[9][0]代表二維數(shù)組中的元素,s[9][0][1]代表三維數(shù)組中的元素。

1.定義一維數(shù)組
int A[10]
//定義了一個整型數(shù)組,數(shù)組名為A,包含十個元素。

定義一維數(shù)組的一般形式:
類型說明符+數(shù)組名[常量表達式]
??????
(1).數(shù)組名的命名遵循標識符命名規(guī)則。
(2).定義數(shù)組時,需要指定數(shù)組中元素的個數(shù),[]內(nèi)的常量表達式用來表示元素的個數(shù),即數(shù)組長度。??下標從0開始而不是從1開始。
(3).[]內(nèi)的內(nèi)容可以是常量加符號常量加常量,但不能是變量

2.引用一維數(shù)組

??只能引用數(shù)組元素而不能調(diào)用整個數(shù)組的元素。
引用數(shù)組元素的表示形式:
數(shù)組名[下標]
例:逆序輸出0,1,2,3,4,5,6,7,8,9

#includeint main()
    {int i,a[10];
        for(i=0;i<=9;i++)
            a[i]=i;
        for(i=9;i>=0;i--)
            printf(" %d",a[i]);
        printf("\n");
        return 0;
    }
//運行結(jié)果
 9 8 7 6 5 4 3 2 1 0
3.初始化一維數(shù)組

為啥程序簡潔,常在定義數(shù)組時給數(shù)組中的元素賦值,這稱為數(shù)組的初始化。

(1).全部賦值
int A[10]={1,2,3,4,,5,6,7,8,9}

數(shù)組長度是多少就要提供多少元素

(2).部分賦值
int A[10]={1,2,3,4,5}

在數(shù)組長度范圍內(nèi),想給前面多少元素賦初值就提供多少元素

(3).全部賦為0
int A[10]={0,0,0,0,0,0,0,0,0,0}
//或
int A[10]={0}

未賦值部分自動設(shè)定為0

(4).數(shù)據(jù)個數(shù)確定可不指定數(shù)組長度
int A[10]={1,2,3,4,,5,6,7,8,9}
//等價于
int A[]={1,2,3,4,,5,6,7,8,9}

??有且僅當數(shù)據(jù)個數(shù)等于數(shù)組長度時可這樣使用
💡定義數(shù)值型數(shù)組時,凡未被初始化的的元素,系統(tǒng)會自動將它們初始化為0.
若為字符型數(shù)組,則為’\0’,
若為指針型數(shù)組,則為NULL,即空指針。

4.例子
#includeint main()
{int a[10];
    int i,j,t;
    printf("請輸入十個數(shù)字:\n");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("\n");
    for(j=0;j<9;j++)
        for(i=0;i<9-j;i++)
            if(a[i]>a[i+1])
                    {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("從小到大的排列:\n");
for(i=0;i<10;i++)
    printf("%d ",a[i]);
printf("\n");
return 0;
}
//運行結(jié)果
請輸入十個數(shù)字:
1 3 5 2 6 8 3 9 10 7
從小到大的排列:
1 2 3 3 5 6 7 8 9 10
三.二維數(shù)組

二維數(shù)組常被稱為矩陣。把二維數(shù)組寫成行(row)和列(column)的排列方式,有助于理解二維數(shù)組的邏輯結(jié)構(gòu)。

1.定義二維數(shù)組

方法和定義一維數(shù)組類似。
二維數(shù)組數(shù)組的一般形式為:
類型說明符 數(shù)組名[常量表達式][常量表達式]
如:

float a[2][3]

定義a為2x3的數(shù)組。

2.引用二維數(shù)組

二維數(shù)組元素的表示形式為:
數(shù)組名 [下標][下標]
數(shù)組元素可以出現(xiàn)在表達式中,也可以被賦值,
如:B[2][3]=A[1][2]/2

3.二維數(shù)組的初始化 (1)分行賦初值
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

這種方法直觀,不易遺漏。第一個花括號的數(shù)據(jù)賦給第一行,其他行以此類推

(2)整體賦值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

所有元素放在一個花括號內(nèi),按數(shù)據(jù)的排列順序?qū)Ω髟刭x初值。和第一個方法相比,第一個方法更好一些,一行對一行,界限清楚。

(3)部分賦值
int a[3][4]={{1},{2},{3}};

只對各行第一列序號為0的元素賦初值,其余元素值為0。

int a[3][4]={{1},{0,4},{0,0,8}}

對各行中某一個元素賦初值,在非零元素少時比較方便。

int a[3][4]={{1,2},{},{3,4}};

對某幾行元素賦初值。

int a[][4]={0,0,3},{},{0,10}};

可以省略一維長度,但要分行賦值

(4)全部賦值
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
//等價于
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

一維的長度可以省略不寫,但二維的不能省。系統(tǒng)會根據(jù)二維長度推算出一維長度。

4.舉例

二維數(shù)組元素互換

#includeint main()
{int a[2][3]={{1,2,3},{4,5,6}};
    int b[3][2],i,j;
    printf("數(shù)組 a:\n");
    for(i=0;i<=1;i++)
    {for(j=0;j<=2;j++)
        {printf("%5d",a[i][j]);
            b[j][i]=a[i][j];
        }
        printf("\n");
    }
    printf("數(shù)組 b:\n");
    for(i=0;i<=2;i++)
    {for(j=0;j<=1;j++)
            printf("%5d",b[i][j]);
        printf("\n");
    }
    return 0;
}
//運行結(jié)果
數(shù)組 a:
    1    2    3
    4    5    6
數(shù)組 b:
    1    4
    2    5
    3    6

3x4矩陣求大值,以及他的行列號

#includeint main()
{int i,j,row=0,colum=0,max;
    int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
    max=a[0][0];
    for(i=0;i<=2;i++)
        for(j=0;j<=3;j++)
            if(a[i][j]>max)
            {max=a[i][j];
                row=i;
                colum=j;
            }
    printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
    return 0;
}
//運行結(jié)果
max=10
row=2
colum=1
四.字符數(shù)組

字符型數(shù)據(jù)以ASCII碼的形式存儲在存儲單元中,一般占一個字節(jié)。

1.定義字符數(shù)組

用來存放字符數(shù)據(jù)的數(shù)組就是字符數(shù)組。在字符數(shù)組中的一個元素內(nèi)存放一個字符。
定義字符數(shù)組的方法和定義數(shù)值型數(shù)組的方法類似。
如:

char a[11]={'I',' ','a','m',' ','L','i','M','i','n','g'};

上面定義了a為字符數(shù)組,包含11個元素。

2.初始化字符數(shù)組

對字符數(shù)組初始化,最易理解的方式是使用‘初始化列表’,把各個字符依次賦給數(shù)組中個元素。
如:

char a[11]={'I',' ','a','m',' ','L','i','M','i','n','g'};

將11個字符依次賦給a0~a10這11個元素。
若提供的初值個數(shù)和預(yù)定的數(shù)組長度相同,在定義時可以省略數(shù)組長度,系統(tǒng)會自動根據(jù)初值個數(shù)確定數(shù)組長度。
如:

char a[]={'I',' ','a','m',' ','L','i','M','i','n','g'};

也可以定義和初始化一個二維字符數(shù)組。
如:

char a[4][5]={{' ','*',' ','*' ' '},{'*',' ','*',' ','*'},{' ','*',' ','*',' '},{' ',' ','*',' ',' '}};
3.引用字符元素中的元素

可以引用字符數(shù)組中的元素得到一個字符。
如:
例一:輸出愛心圖案

#includeint main()
{char a[4][5]={{' ','*',' ','*',' '},{'*',' ','*',' ','*'},{' ','*',' ','*',' '},{' ',' ','*',' ',' '}};
    int i,j;
    for(i=0;i<4;i++)
        {for(j=0;j<5;j++)
                printf("%c",a[i][j]);
            printf("\n");
        }
    return 0;
}
//運行結(jié)果
 * * 
* * *
 * * 
  * 

將*號連起來,可以看到一個愛心。
例二:輸出字符串

#includeint main()
{char a[11]={'I',' ','a','m',' ','L','i','M','i','n','g'};
    int i;
    for(i=0;i<11;i++)
        printf("%c",a[i]);
    printf("\n");
    return 0;
}
//運行結(jié)果
I am LiMing
4.字符串和字符串結(jié)束標志

在C語言中,將字符串作為字符數(shù)組來處理。
在實際工作中,人們關(guān)心的往往是字符串的有效長度而不是字符數(shù)組的長度。所以為了測定字符串的實際長度,C語言規(guī)定了一個字符串結(jié)束標志。以字符’\0’作為結(jié)束標志。
若字符數(shù)組中存在若干個字符,前面的9個字符都不是('\0'),而第10個字符是'\0'則認為數(shù)組中有一個字符串,有效字符有9個。換而言之,'\0'前面的字符組成一個字符串。
💡💡💡
'\0'代表ASCII碼中為0的字符。這是一個空操作符,即它什么也不做。起一個供辨別的標志。

使用字符串常量使字符數(shù)組初始化
char d[]={"I am LiMing"};
//等于
char d[]="I am LiMing";
//等價于(長度為11)
char a[]={'I',' ','a','m',' ','L','i','M','i','n','g','\0'};
//不等價于(長度為10)
char a[]={'I',' ','a','m',' ','L','i','M','i','n','g'};

若有

char c[10]={"China"}

則數(shù)組中前五個元素為:‘C’,‘h’,‘i’,‘n’,‘a(chǎn)’。后面的元素自動設(shè)定為’\0’。
💡💡💡
字符數(shù)組并不要求它的最后一個字符必須是’\0’,像下面這樣寫完全可以:

char c[5]={'C','h','i','n','a'};

是否需要添加’\0’,需要根據(jù)實際判斷。但是由于系統(tǒng)在存儲字符串常量時會自動添加一個’\0’,所以為了使處理方法一致,便于測定字符串的實際長度,常認為的加上一個’\0’。
如:

char c[6]={'C','h','i','n','a','\0'};

這樣做便于引用字符數(shù)組中的字符串
如:

//定義如下數(shù)組
char c[]={"Chinese"};

使用Hello替換原來的字符串,在不加'\0'的情況下。
數(shù)組中存儲的字符是Hellose'\0'。加上'\0'后,再輸出字符串,就會只輸出Hello。這就是加上了'\0'的作用

#includeint main()
{char c[]={"China",};
    char a[]={'H','e','l','l','o','\0'};
    printf("%s\n",a);
    printf("%s\n",c);
    return 0;
}
//運行結(jié)果
Hello
China

沒有’\0’

#includeint main()
{char c[]={"China",};
    char a[]={'H','e','l','l','o'};
    printf("%s\n",a);
    printf("%s\n",c);
    return 0;
}
//運行結(jié)果
HelloChina
China
5。字符串的輸入輸出

兩種方法
(1)逐個輸入輸出,使用格式符“%c”輸入輸出一個字符。
(2)整個輸入輸出,使用格式符“%s”輸入輸出一個字符串
如:

#includeint main()
{char c[]={"China",};
    printf("%s\n",a);
    return 0;
}
//運行結(jié)果
China
6.使用字符串處理函數(shù) 1.puts函數(shù)–輸出字符串

一般形式:puts(字符數(shù)組)。
將一個字符串輸出到終端。
作用和printf函數(shù)相同,所以可以用printf函數(shù)代替puts函數(shù)。所以puts函數(shù)不常使用。
用puts函數(shù)輸出的字符串中可以包含轉(zhuǎn)義字符。

2.gets函數(shù)–輸入字符串

一般形式:gets(字符數(shù)組)
作用是:從終端輸入一個字符串到字符數(shù)組,并且得到一個函數(shù)值。
puts函數(shù)和gets函數(shù)都只能輸入或輸出1個字符串,不能寫成

puts(str1,str2);或gets(str1,str2);
4.strcat–字符串連接函數(shù)

一般形式:
strcat(字符數(shù)組1,字符數(shù)組2)
作用是將兩個字符數(shù)組中的字符串連接在一起,將字符數(shù)組2接到字符數(shù)組1的后面。字符數(shù)組1的長度必須能包含字符數(shù)組2,即字符數(shù)組1除了有存儲本省存儲的字符串,還要有能容納字符數(shù)組2內(nèi)字符串的空間。

4.strcpy和strncpy函數(shù)–字符串復(fù)制函數(shù)

一般形式:
strcpy(字符數(shù)組1,字符串2)
作用是將字符串2復(fù)制到字符數(shù)組中
字符數(shù)組1的長度至少等于字符串2的長度。字符數(shù)組1必須為字符數(shù)組名,字符串2可以是字符串常量也可以是字符數(shù)組名。

5.strcmp函數(shù)–字符串比較函數(shù)

.一般形式:
strcmp(字符串1,字符串2)
作用是比較字符串1和字符串2的大小。
💡字符串比較的規(guī)則是將兩個字符串自左至右逐個字符比較(按ASCII碼值大小比較),只到出現(xiàn)不同的字符或遇到’\0’為止。
(1)字符全部相同,兩個字符串相等
(2)出現(xiàn)不同字符,則以第一對不相同的字符比較的結(jié)果為準。
💡若比較中兩個字符都是由英文字母組成,那么在英文字典中位置在后面的為大。小寫字母>大寫字母。
比較結(jié)果由函數(shù)值帶回:
相同為0, a>b為正整數(shù),a6.strlen函數(shù)——測字符串長度的函數(shù)

一般形式:
strlen(字符串)
作用是測量字符串的實際長度。

7.strupr函數(shù)和strlwr函數(shù)——轉(zhuǎn)化為大小寫的函數(shù)

一般形式:
大寫:strupr函數(shù)(字符串)
小寫:strlwr函數(shù)(字符串)
作用是將字符串中的大小寫字母轉(zhuǎn)化為對應(yīng)的小大寫字母

五.實例

100以內(nèi)的素數(shù)

#include#includeint main()
{int i,j,n,a[101];
  for (i=1;i<=100;i++)
      a[i]=i;
  a[1]=0;
  for (i=2;iif(a[i]!=0 && a[j]!=0)
	      if (a[j]%a[i]==0)
	        a[j]=0; 
       }
  printf("\n");
  for (i=2,n=0;i<=100;i++)
    {if(a[i]!=0)
	    {printf("%5d",a[i]);
         n++;
        }
      if(n==10)
        {printf("\n");
         n=0;
        }
    }
  printf("\n");
  return 0;
}
//運行結(jié)果
開始運行...
    2    3    5    7   11   13   17   19   23   29
   31   37   41   43   47   53   59   61   67   71
   73   79   83   89   97
運行結(jié)束。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁名稱:C語言--數(shù)組-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.muchs.cn/article6/dpgeig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、營銷型網(wǎng)站建設(shè)、網(wǎng)站策劃、面包屑導航、品牌網(wǎng)站制作App設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)