c語言開發入門及項目實戰課件第9章數組_第1頁
c語言開發入門及項目實戰課件第9章數組_第2頁
c語言開發入門及項目實戰課件第9章數組_第3頁
c語言開發入門及項目實戰課件第9章數組_第4頁
c語言開發入門及項目實戰課件第9章數組_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數組

教學目的內容1

教學要求2

重點難點3

教學內容4教學目的在編寫程序的過程中,經常會遇到使用很多數據量的時候,處理每一個數據量就要有一個相對應的變量,如果每一個變量都要單獨進行定義的話就會變得很繁瑣,使用數組就可以解決這種情況。本講致力于使讀者掌握一維數組和二維數組的作用,并且能運用所學知識解決一些實際的問題。掌握字符數組的使用及其相關的操作。通過一維數組和二維數組了解有關多維數組的內容。最后應用數組應用于排序算法,介紹有關字符串處理函數的使用。教學要求掌握一維數組和二維數組的定義和引用;了解多維數組的概念;熟悉字符數組的組成;熟悉字符串處理函數的使用;掌握應用數組進行編程的方法。重點難點重點:一維數組和二維數組的定義與引用;字符串數組的使用

;字符串處理函數;應用數組進行編程。難點:二維數組的應用;字符串數組的應用。教學內容多維數組;數組的概念;一維數組;二維數組;字符數組;字符串處理函數;熟練應用數組。數組的概念在使用計算機對數據進行處理時,經常會遇到如下情況:具有相同數據類型的數據量很大,如全班同學的考試成績、公司中全部員工或者某旅游景點客流量記錄等。對于這種需要數據量非常大的程序,需要把同一類型的數據按照一定形式有序地組織起來,這些有序數據的集合就稱為數組。數組也可以理解為類型相同、數目固定的若干個變量的有限集合。在C語言中,一個數組有一個統一的數組名,數組中的每一次元素有一個確定的下標來標識。數組的組成如圖所示。數組元素是組成數組的基本單元,必須具有相同的數據類型,并且“數組名”和“下標”唯一確定。數組是有序數據的集合,有序是指系統在存放的時候會為數據元素分配一段連續的存儲空間,數據元素在這段空間內按照先后順序進行存放。數組是最為簡單的數據結構之一,其用途十分廣泛。讀者學習本章之后,可以用一維數組來存儲一個線性序列,以便對該序列進行各種操作;可以用二維數組來存儲一個矩陣,從而實現更為復雜的數據處理。“數組名”是用戶定義的數組標識符;“下標”:是數組中各個元素之間的相對位置。

數組的概念

C數組的分類數組可以用兩種方法進行分類,數組元素的類型和下標的個數。按照數組元素的類型分類數組元素是組成數組的基本單元,必須具有相同的數據類型。也就是說數組中有一個是整型變量,那么整個數組中的變量都是整型類型的,這樣的數組就叫做整形數組。如果有一個變量是實型,那么說明整個數組都是實型變量,叫做實型數組。按照數組元素的類型可把數組分為:整型數組、實型數組、字符數組、指針數組等類型。按照下標的個數進行分類因為數組的下標是唯一確定的,所以可以按照下標個數進行分類,分別為:一維數組、二維數組和多維數組。在C語言中,有時將數組元素稱為下標變量,而普通變量稱為標量變量。本章將按照下標個數分類的方式對數組進行介紹,即一維數組、二維數組和多維數組的順序進行詳細講解。 數組的維數所說的一維、二維、多維的維數都是按照數組元素的下標個數進行區分的。使用數組的時候,如果只有一個下標,則稱為一維數組,一維數組一般表示一種線性數據的組合。二維數組則是有兩個下標,可以將其看做是平面數據的組合。多維組合自然是有多個下標,可以看做是多面體。如三維數組有三個下標,三維動畫、三維立體聲等等,可以看做是立方體。編寫程序的時候需要多少個相對位置表示出來,維數就是多少,C語言對數組下標的數量沒有限制。C語言中的數據類型包括基本類型、構造類型、指針類型和空類型。數組為構造類型,構造類型除了數組外,還包括結構體類型和共用體類型。一維數組一維數組指的是數組元素只有一個下標的組數,也就是說一維數組是相對最為簡單的數組類型,由此可以看出,掌握好一維數組的相關知識,是學好數組的前提和基礎,希望能夠理解深刻,并能夠熟練的掌握。

一維數組的定義在前面已經講解C語言使用變量時有一條規定:“先定義,后使用。”定義數組和定義變量一樣,定義數組的目的是為某組數據申請內存控件并命名這塊內存空間,以便在后面的程序中使用。所以使用數組和使用變量一樣,在使用數組前,一定要先進行定義,一維數組是用以存儲一維數列中數據的集合。雖然使用數組和使用變量一樣都要“先定義,后使用。”但是定義數組和定義變量還是有不同之處,不一樣的是,定義數組還意味著對這個數組進行構造。在定義或者構造一個數組時,需要為這組數據占據的內存空間取一個共同的名字,這個名字也就是這組數據共同的名字,這個名字需要滿足標識符法則。在定義數組時要明確向編譯器表明兩點:(1)數組元素的類型。(2)數組元素的總個數一維數組一維數組定義的一般形式如下。類型說明符數組標識符[常量表達式];類型說明符:表示數組中的所有元素類型,可以是任意一種簡單類型、構造類型或指針。數組標識符:表示這個數組型變量的名稱,所以有時也叫做數組名,其命名規則與變量名一致(由字母、數字、下劃線組成,但是必須是以字母或者是下劃線開頭)。中括號(方括號):這對中括號是數組標志,同時也是數組的重要組成部分,不能缺少,也不可以轉換成其他符號。常量表達式:中括號內的表達式必須為常量和符號常量,一般情況下不能為變量。常量表達式定義了數組中存放的數據元素的個數,即數組長度。例如a[5],5表示數組中有5個元素,下標從0開始,到4結束。例如定義一個數組。inta[5];代碼中的int為數組元素的類型,而a表示的是數組變量名,括號中的5表示的是數組中包含的元素個數。在數組a[5]中只能使用a[0]、a[1]、a[2]、a[3]、a[4]而不能使用a[5],若使用a[5]會出現下標越界的錯誤。一維數組我們在前面已經講過宏定義#define,如果是用#define宏定義一個符號常量,這個符號常量可以用來聲明數組的元素個數。如下所示。#definea9……inti[a];上述代碼首先通過宏定義#define定義符號常量a為9,再使用符號常量a聲明數組元素個數,i[a]相當于i[9]。中括號里面也可以是常量表達式,例如“i[6+3]”也等同于i[9]。以上兩種聲明都是具有9個元素的數組。對于一維數組,可以使用下列公式計算所需要的內存字節數。總字節數=sizeof(類型)×數組長度。定義一維數組雖然簡單,但是也不可以馬虎大意,下面是定義一維數組時應該注意的幾條事項:數組名不允許與其他變量名相同;定義數組的后面一定不要忘記加上分號“;”,只有加上分號才是一條完整的語句。在C89標準的編譯器中,一維數組中括號“[]”內不要使用動態定義。一維數組的一般形式中括號內是常量表達式,而常量表達式可以是整型常量、整型的符號常量和整型的常量表達式,由此可以看出,C語言中是不允許數組進行動態定義的。例如下面定義的方法在C89標準中,是不符合標準的。inti=9;inta[i];在C89標準的編譯器中,是不允許對數組長度使用動態定義的,但是在C99標準的編譯器則是合法的。上述代碼的定義方法稱為變長數組,變長數組允許動態分配存儲單元。在讀者使用數組定義時,希望盡量不要使用動態定義,以免出現不必要的錯誤。一維數組

一維數組的引用數組定義完成后就要使用該數組,可以通過引用數組元素的方式,使用該數組中的元素。在引用數組的時候應該注意下標的范圍,其范圍是從0~(常量表達式-1)。在C語言中,數組元素不能夠整體被引用,只能逐個引用。數組元素的表示的一般形式如下。數組標識符[下標]例如引用一個數組變量a中的第3個變量。a[2];實例:使用數組保存數據一維數組的初始化初始化數組就是在定義數組變量的同時給其中的數組元素賦值。在定義數組之后,就可以對數組進行初始化。一維數組初始化的一般形式如下:類型說明符數組名[常量表達式]={值1,值2,……,值n};如果說定義是在內存中開辟存儲單元,對一維數組的初始化主要有三種形式,下面對這三種形式進行詳細講解。在定義數組時可直接對全部的數組元素賦初值,即全部初始化。例如:inti,a[6]={1,2,3,4,5,6};實例

初始化一維數組

一維數組可以只給一部分元素賦值,當“{}”中值的個數少于元素個數時,只給前面部分元素賦初值,沒有賦值的元素默認值為0,這種初始化為部分初始化。例如:inta[6]={10,20,30};數組變量a包含6個元素,不過在初始化的時候只給出了3個值。于是數組中前三個元素的值對應括號中給出的值,在數組中沒有得到值的元素被系統自動賦值為0。在給數組元素初始化的時候,雖然只賦值一部分是可以的,但是絕對不能賦初值的個數多于數組中元素的個數,下面的賦值就是不允許的:inta[3]={10,20,30,40,50}。在對全部數組元素賦初值時,可以不指定數組長度,這種方法雖然可行,但是在此筆者并不推薦讀者使用這種方法。之前在定義數組時,都在數組變量后指定了數組的元素個數。C語言還允許在定義數組時不用指定長度,例如:inta[]={10,20,30,40,50};像上面的語句,大括號中有5個元素,系統就會根據給定的初始化元素值的個數來定義數組的長度,所以該數組變量的長度為5。

實例

不指定數組的元素個數

一維數組

一維數組的應用

一維數組的注意事項在使用一維數組時,初學者常常會出現一些不必要的錯誤,下面對應注意的事項進行詳解:1.在為一維數組賦值時,只能給數組元素逐個賦值,不能給數組整體賦值。例如給一維數組元素全部賦值為10,正確的編寫方式為:inta[10]={10,10,10,10,10,10,10,10,10,10};錯誤的編寫方式為:inta[10]={10};唯有一種情況可以給數組元素整體賦值,就是給數組元素全部賦值為0。下面給數組元素賦值為0可以用下面三種編寫方式。inta[10]={0,0,0,0,0,0,0,0,0,0};inta[10]={0};inta[10]={};2.如果初值的類型與數組元素類型不一致,則把初值類型轉換為數組元素的類型。3.避免數組越界。二維數組在日常生活中有很多數據是二維的或多維的。例如:二維表、數學中的矩陣、甚至是圖像文件等數據都是以二維形式存儲的。因為一維數組只有一個下標,這就限制了一維數組解決問題的范圍。如果解決矩陣相關的問題,雖然有時用一維數組也可以解決,但是卻繁瑣、麻煩、而且易出錯。這時就需要使用功能更強大,數據存儲更多的二維數組。二維表:就是由行、列組成的表格。這么說可能不是很理解,舉一兩個實際生活中應用的例子就容易明白了。如學校用的課程表、公司用的工資表,這些都是二維表,就連常常用到的excel表格也是二維表,而且功能非常強大。知道行號列號就可以確定一個表中的數據,這是二維表的特點。二維數組二維數組的定義二維數組可以看成是一維數組的延伸和擴展,一維數組就像是一條直線,雖然可以表示所有數據,但是卻不能表示出數據之間的關系。二維數組則與之不同,二維數組可以就像是一個平面,可以表示出數據之間二維表的關系,二維數組主要應用于表示二維表和矩陣。二維數組的定義和一維數組大致相同,只是比一維數組多了一個常量表達式,其一般形式如下。數據類型說明符數組名[常量表達式1][常量表達式2];“類型說明符”用來說明數組中元素的數據類型。“數組名”唯一標識該二維數組。第一個方括號“[]”中的常量表達式1標識第一維下標的長度,第二方括號“[]”中常量表達式2標識第二維下標的長度。“常量表達式1”被稱為行下標,“常量表達式2”被稱為列下標。如果有二維數組a[n][m],則二維數組的下標取值范圍如下。行下標的取值范圍0~n-1。列下標的取值范圍0~m-1。二維數組的最大下標元素是a[n-1][m-1]。例如定義一個4行5列的整型數組。inta[4][5];說明了一個四行五列的數組,數組名為a,其下標變量的類型為整型。該數組的下標變量共有4×5個,即:二維數組二維數組的引用與一維數組相同,定義了二維數組后就要用它存儲數據、管理數據。二維數組的元素也稱為雙下標變量,二維數組元素的一般形式為:數組名[下標][下標];下標可以是整型常量或整型表達式。例如對一個二維數組的元素進行引用:a[1][2];這行代碼表示的是對a數組中第2行的第3個元素進行引用。需要注意的是,不管是行下標或者是列下標,其索引都是從0開始的。這里和一維數組一樣要注意下標越界的問題,例如:inta[2][4];… /*對數組元素進行賦值*/a[2][4]=9; /*錯誤!*/上面代碼這種表示是錯誤的:首先a為2行4列的數組,那么它的行下標的最大值為1,列下標的最大值為3,所以a[2][4]超過了數組的范圍,下標越界。定義數組a[2][4]和引用元素a[2][4]時是不同的。在定義數組a[2][4]時,2和4分別代表的是數組的維數和維數的范圍;在引用元素a[2][4]時,2和4是數組元素的下標值,僅僅是代表數組中的一個元素。二維數組二維數組的初始化二維數組和一維數組一樣,也可以在聲明時對其進行初始化。二維數組的初始化方式比一維數組較為復雜,但是都是由一維數組初始化方法衍生而來的,在給二維數組賦初值時,有以下4種形式:按行連續賦值,即將所有數據寫在一個大括號內,按照數組元素排列順序對元素賦值。如:inta[2][2]={1,2,3,4};如果大括號內的數據少于數組元素的個數時,系統將默認后面沒被賦值的元素值為0。以矩陣形式表示為:在為所有元素賦初值時,可以省略行下標,但是不能省略列下標。如:inta[][3]={1,2,3,4,5,6};系統會根據數據的個數進行分配,一共有6個數據,而數組每行分為3列,當然可以確定數組為2行。以矩陣形式表示為:按行分段賦值,可以分行給數組元素賦值,如:inta[2][3]={{1,2,3},{4,5,6}};在分行賦值時,可以只對部分元素賦值,如:inta[2][3]={{1,2},{4,5}};在上行代碼中,各個元素的值如下。a[0][0]的值是:1;a[0][1]的值是:2;a[0][2]的值是:0;a[1][0]的值是:4;a[1][1]的值是:5;a[1][2]的值是:0;以矩陣形式表示為:二維數組二維數組也可以直接對數組元素賦值,例如:inta[2][3];a[0][0]=1;a[0][1]=2;這種賦值的方式,就是使用數組引用的數組中的元素。實例

本示例實現將一個二維數組的行和列元素互換,存到另一個二維數組中。二維數組應用下面將通過一個C語言經典的實例使讀者了解二維數組的應用。實例

打印出楊輝三角(要求打印出頭10行)。

多維數組在講解二維數組時,提到二維數組是一維數組的延伸和拓展,因此多維數組可以說成是二維數組的延伸和拓展。多維數組相對二維數組來講,可以用于處理更加復雜的數據問題,因此多維數組相對二維數組來講更加難以掌握,需要多加練習使用。多維數組的定義和二維數組相同,只是下標更多,一般形式如下。數據類型數組名[常量表達式1][常量表達式2]…[常量表達式n];例如聲明多維數組如下。inta1[3][4][5];inta2[9][8]8][9];在上面的代碼中分別定義了一個三維數組a1和一個四維數組a2。由于數組元素的位置都可以通過偏移量計算,所以對于三維數組a[m][n][p]來說,元素a[i][j][k]所在的地址是從a[0][0][0]算起到(i*n*p+j*p+k)個單位的地方。二維以上的數組在編寫程序的過程中很少使用,主要是因為這些書主要占用大量的存儲空間。例如inta2[9][8][8][9]四維基本整型數組,那么需要9*8*8*9*2個即10368個字節的存儲空間。

字符數組除了前面介紹的整型數組、浮點型數組外,還有一種非常重要的數組就是字符數組。數組中的元素類型為字符型時稱為之字符數組。字符數組即為char型數組,使用以存放char型數據的數組容器。字符數組中的每一個元素可以存放一個字符。字符數組的定義和使用方法與其他基本類型的數組大致相同。1.字符數組的定義字符數組的定義與其它數據類型的數組定義類似,一般形式如下:char數組標識符[常量表達式];因為要定義是字符型數據,所以在數組標識符前所用的類型是char。后面括號中表示的是數組元素的數量。例如定義一個字符數組ca。charca[5];其中的ca表示數組的表示符,而括號中的5表示數組中包含5個字符型的變量元素。

2.字符數組的引用字符數組的引用和其他類型數據引用一樣,也是使用下標的形式,例如引用上面定義的數組ca中的元素:ca[0]=’H’;ca[1]=’e’;ca[2]=’l’;ca[3]=’l’;ca[4]=’o’;上面的代碼依次引用數組中元素,為其進行賦值。字符數組3.字符數組初始化與其他變量一樣,使用在對字符數組進行初始化操作時有一下幾種方法:逐個字符賦給數組中各元素這是最容易理解的初始化字符數組的方式,例如初始化一個字符數組:charca[12]={'H','E','L','L','O',',','M','I','N','G','R','I'};定義包含12個元素的字符數組,在初始化的大括號中,每一個字符對應賦值一個數組元素。實例

使用字符數組輸出一個字符串,定義一個字符數組通過初始化操作保存字符串“HELLO,MINGRI”,然后通過循環引用每一個數組元素進行輸出操作,最后將字符串“HELLO,MINGRI”輸出在顯示器上。如果在定義字符數組時進行初始化,可以省略數組長度如果初值個數與預定的數組長度相同,在定義時可以省略數組長度,系統會自動根據初值個數確定數組長度。例如上面初始化字符數組的代碼可以寫成:charca[]={'H','E','L','L','O',',','M','I','N','G','R','I'};在代碼中可以看到定義的ca[]中沒有給出數組的大小,但是根據初值的個數會確定數組的長度為12。利用字符串給字符數組賦初值。通常用一個字符數組來存放一個字符串。例如用字符串的方式對數組作初始化賦值如下。charca[]={"HELLO,MINGRI"};或者將{}去掉,寫成:charca[]="HELLO,MINGRI";實例

使用二維字符數組輸出一個鉆石形狀。字符數組4.字符數組的結束標志在C語言中,使用字符數組保存字符串,也就使用一個一維數組保存字符串中的每一個字符。字符串總是以'\0'作為串的結束符。因此當把一個字符串存入一個數組時,也把結束符'\0'存入數組,并以此作為該字符串是否結束的標志。系統會自動在字符串的末尾為其添加'\0'作為結束符,不必我們手動填寫。例如在初始化一個字符數組時。charc[]="Hello";用字符串方式賦值比用字符逐個賦值要多占一個字節,多占的這個字節用于存放字符串結束標志‘\0’。那么上面的字符數組cA在內存中的實際存放情況如圖所示。'\0'是由C編譯系統自動加上的。所以上面的賦值語句等價于:charc[]={'H','e','l','l','o','\0'};是否需要加'\0',完全根據需要決定。但是由于系統對字符串常量自動加一個'\0'。因此,為了使處理方法一致,便于測定字符串的實際長度,以及在程序中作相應的處理,在字符數組也常常認為的加上一個轉義字符'\0'。例如:charc[6]={'H','e','l','l','o','\0'};

字符數組5字符數組的輸出字符數組的輸入輸出有兩種方法:使用格式符“%c”進行輸出使用格式符“%c”,實現字符數組中字符的逐個輸出。例如循環輸出字符數組中的元素:for(i=0;i<5;i++) /*進行循環*/{printf("%c",ca[i]); /*輸出字符數組元素*/}其中變量為循環的控制變量,并且在循環中作為數組的下標,進行循環輸出。使用格式符“%s”進行輸出使用格式符“%s”,將整個字符串依次輸出。例如輸出一個字符串:charca[]="GoodDay!"; /*初始化字符數組*/printf("%s",ca); /*輸出字符串*/其中使用格式符%s將字符串進行輸出。注意以下幾種情況:輸出字符不包括結束符'\0'。用“%s”格式輸出字符串時,printf函數中的輸出項是字符數組名ca,而不是數組中的元素名ca[0]等。如果數組長度大于字符串實際長度,也只輸出直到'\0'為止。如果一個字符數組中包含多個'\0'結束字符,則在遇到第一個'\0'時輸出就結束。實例

使用兩種方式輸出字符串字符數組6.字符數組的輸入字符數組的輸入也是分為兩種方法:使用格式符%c使字符逐個輸入,例如下面代碼:for(i=0;i<10;i++)/*進行循環*/{scanf("%c",&c[i]); /*要求輸入字符數組元素*/}使用格式符“%s”進行輸入使用格式符“%s”,將整個字符串依次輸入。例如輸入一個字符串:chars[9]; /*定義數組*/scanf(“%s”,s); /*要求輸入字符串*/如果使用scanf函數通過格式符“%s”進行輸入時,輸入的字符串不要帶有空格或者是Enter鍵,因為空格和Enter鍵都會被認為是數據的分隔符,而不認為是字符串的一部分,不會作為數據保存。實例

使用格式符%s進行輸入實例

輸出完整的帶有空格的字符串

7.字符數組應用實例

字符升序排列,將已按升序排好的字符串a和字符串b按升序歸并到字符串c中并輸出。

字符串處理函數在編寫程序時,經常會對字符和字符串進行操作,轉換字符的大小寫,求字符串長度等,都可以使用字符函數和字符串函數來解決。C語言標準函數庫專門為其提供了一系列處理函數。可以實現字符串的輸入、輸出、復制、連接、比較、轉換和獲取字符串的長度等功能。使用字符串處理函數時,要用編譯預處理命令#include將頭文件string.h包含進來,當然puts()和gets函數除外,因為它們是標準的輸入輸出函數,需要的是頭文件stdio.h。在編寫程序過程中合理有效地使用這些字符串函數可以提高編程效率同時還可以提高程序性能。本節將對字符串處理函數進行介紹。在前些章節,已經詳細的介紹過字符串的輸入和輸出函數:puts()函數和gets()函數,在本節就不再重復敘述。1.字符串復制在字符串操作中,字符串復制是比較常用的操作之一,在字符串處理函數中包含strcpy函數,該函數將復制特定長度的字符串到另一個字符串中。其語法格式如下:strcpy(目的字符數組名,源字符數組名)功能:把源字符數組中的字符串拷貝到目的字符數組中。字符串結束標志‘\0’也一同拷貝。下面通過實例來介紹一下strcpy函數的使用。實例

字符串復制字符串處理函數2.字符串連接字符串連接就是將一個字符串連接到另一個字符串的末尾,使其組合成一個新的字符串,在字符串處理函數中,strcat函數就具有字符串連接的功能。其語法格式如下:strcat(目的字符數組名,源字符數組名)功能:把源字符數組中的字符串連接到目的字符數組中字符串的后面,并刪去目的字符數組中原有的串結束標志‘\0’。因此,目的字符數組必須擁有足夠大的長度,以免發生因不能裝下連接源字符數組后的新字符串,而產生的錯誤。字符串復制實質上是用源字符數組中的字符串覆蓋目的字符數組中的字符串,而字符串連接則不存在覆蓋的問題,只是單純的將源字符數組中的字符串連接到目的字符數組中的字符串的后面。下面通過實例來介紹一下strcat函數的使用。實例

字符串連接

字符串處理函數3.字符串比較字符串比較需要使用具有在字符串間進行比較功能的strcmp函數。其語法格式如下。strcmp(字符數組名1,字符數組名2)功能:字符串比較就是將一個字符串與另一個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論