第7章数组--C语言程序设计(谭浩强第三版)讲解.ppt_第1页
第7章数组--C语言程序设计(谭浩强第三版)讲解.ppt_第2页
第7章数组--C语言程序设计(谭浩强第三版)讲解.ppt_第3页
第7章数组--C语言程序设计(谭浩强第三版)讲解.ppt_第4页
第7章数组--C语言程序设计(谭浩强第三版)讲解.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、引言 一维数组的定义和引用 二维数组的定义和引用 字符数组与字符串,第7章 数 组,7.0 引言,一、数组的引入 为了便于处理一批类型相同的数据,引入了数组类型.,假设现在要保存每个学生的成绩,那就需要40个变量,但这样一来输入、输出、计算都会变得繁琐. 在这种情况下,我们可以使用数组类型,声明一个含有40个元素的数组,每个数组元素存放一个成绩,成绩的输入、输出、计算都可通过循环来实现.,例:某班有40名学生,求该班成绩的平均分,#include main( ) int j , sum , s ; float ave ; sum=0; for(j=1; j=40 ; j+) scanf(“%d

2、”, ,二、数组的概念 构造数据类型之一 1.数组:由具有相同类型的有序 数据的集合。用数组名标识。,#include main( ) int j , sum , s40 ; float ave ; sum=0; for(j=0; j=39 ; j+) scanf(“%d”, ,2.数组元素:每一个数组元素 都是一个变量,为了与一般 的变量相区别,我们称数组 元素为下标变量,3.下标变量在数组中的位置 序号称下标,c语言中下标 从0开始,7.1 一维数组的定义和引用 (一)一维数组的定义 定义方式: 数据类型 数组名常量表达式 ;,合法标识符,表示元素个数 下标从0开始, :数组运算符 单目运

3、算符 优先级(1) 左结合 不能用( ),例 int a10;,编译时分配连续内存 内存字节数=数组维数* sizeof(元素数据类型),数组名表示数组所在内存首地址也是a0的地址,是地址常量,定义时 中不能包含变量, 中常量表达式的值不能是实数. 例 int i=15; int datai; (不能用变量定义数组维数),数组必须先定义,后使用 下标可以是常量或整型表达式如: a1 , a2*3 只能逐个引用数组元素,不能一次引用整个数组 下标不要超范围(越界) 数组元素地址表示:,例 int a10; printf(“%d”,a); () 必须 for(j=0;j10;j+) printf(

4、“%dt”,aj); (),二、一维数组的引用,引用形式 : 数组名 下标 ,例 int data5; data5=10; /C语言对数组不作越界检查,使用时要 注意,注意: 如果出现 a5 = 72 ; 编译时不会 指出错误, 系统会将a4后下一个 存储单元 赋值为72, 但这样可能 会破坏数组以外其他变量的值,例:下标越界危害 数组定义为 int a5 , 数组长度为5 ,下标在0 - 4之内, 即a0 - a4,a5,1020,三、 一维数组的初始化 初始化方式,在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值),int a5=1,2,3,4,5; 等价于:a0=1; a1=2;

5、 a2=3; a3=4; a4=5;,说明: 数组不初始化,其元素值为随机数 对static数组元素不赋初值,系统会自动赋以0值,当全部数组元素赋初值时,可不指定数组长度,如 int a5=6,2,3; 等价于: a0=6; a1=2;a2=3; a3=0; a4=0; 如 int a3=6,2,3,5,1; (),static int a5; 等价于:a0=0; a1=0; a2=0; a3=0; a4=0;,只给部分数组元素赋初值,int a=1,2,3,4,5,6; 编译系统根据初值个数确定数组维数,3. int a5; a= 1, 2, 3, 4, 5 ; ,4. int a10; f

6、loat i=3; ai=10; ,1. char name0; float weight10.3; int array-100; ,6.int i, a5; for(i=0;i5;i+) scanf(“%d”,2. int i=5; int ai= 1, 2, 3, 4, 5; ,5. int a5; scanf(“%d”, ,讨论:以下几种用法是否正确?,例1 输入10个数放入一个数组,然后逆序输出。,main( ) int i, a10; for (i=0; i=0; i-) printf(“%4d”,ai); ,运行结果如下: 9 8 7 6 5 4 3 2 1 0 程序使a0到a9的

7、值为09,然后按逆序输出。,程序举例,例2:如何使两个数组的值相等,/*错误编程*/ main() int a4=1,2,3,4,b4; b=a; ,解决方法 法1:逐个元素赋值 b0=a0; b1=a1; b2=a2; b3=a3; 法2:通过循环赋值 int i; for (i=0;i4;i+) bi=ai;,原因: 数组名表示数组的首地址,其值不可改变!,例3: 用数组求fibonacci数列的前20个数 即:1,1,2,3,5,8,13,#include main( ) int i , f20=1,1; for ( i=2 ; i20 ; i+) fi=fi-2+fi-1; for (

8、 i=0; i20 ; i+) if ( i%5=0 ) printf(“n”); printf(“%12d”, fi ); ,f0 f1 f2 f3 f4 f5 : f19,2,3,5,8,6765,i=2 f2=f0+f1,i=3 f3=f1+f2,i=4 f4=f2+f3,第六章:f1=f1+f2 f2=f2+f1 优点:占用存储空间少, 缺点:算法复杂,例4: 线性查找:输入一个数据,在已知数组中查找是否有该数据,9,a0 a1 a2 a3 a4 a5 a6 a7 a8 a9,#include main() int i , x ; int a10= 5, 8, 0, 1, 9, 2,

9、6, 3, 7, 4 ; scanf(“%d”, ,改变: #include main() int i , x ,flag=0; int a5= 5, 8, 0, 1, 9; scanf(“%d”, ,#include main() int i , x ; int a5= 5, 8, 0, 1, 9; scanf(“%d”, ,例5 读10个整数存入数组,找出其中最大值和最小值,步骤: 1. 输入:for循环输入10个整数 2. 处理: (a) 先令max=min=x0 (b) 依次用xi和max,min比较(循环) 若maxxi,令min=xi 3. 输出:max和min,#include

10、main() int x10,i,max,min; printf(Enter 10 integers:n); for(i=0;ixi) min=xi; printf(Maximum value is %dn,max); printf(Minimum value is %dn,min); ,例6: 用冒泡排序法对6个数进行排序(从小到大),冒泡排序方法: 依次比较相邻的两个数,将小数放前面,大数放后面.经过第1轮(共5次比较与交换)后最大的数9已“沉底” 。再对余下的前面5个数进行第二轮比较,次大的数又被安置。 n个数排序需要进行n-1轮比较,从第1轮到第n-1轮,各轮的比较次数依次为:n-1次

11、、n-2次 1次,第i轮比较中要进行n-i次两两比较。,a0 a1 a2 a3 a4 a5,2,7,7,5,4,7,1,4,5,1,5,1,4,1,2,9,9,9,9,9,7,2,5,4,1,初始状态,第1轮,第2轮,第3轮,第4轮,第5轮,7,#include main( ) int a6 , i , j , t; for ( i=0 ; iaj+1 ) t=aj ; aj=aj+1 ; aj+1=t ; for ( i=0 ; i6 ; i+) printf( “%3d”, ai ); ,用嵌套的for循环实现排序 外层循环控制进行几轮比较 内层循环控制每轮的比较次数,#include m

12、ain( ) int a6 , i , j , t; for ( i=0 ; iaj+1 ) t=aj ; aj=aj+1 ; aj+1=t ; for ( i=0 ; i6 ; i+) printf( “%3d”, ai ); ,输入6个数据,用嵌套的for循环实现排序 外层循环控制进行几轮比较 内层循环控制每轮的比较次数,如果前面的数大于后面的数,则进行交换,否则不做任何改变,输出排序后的6个数据,#define N 6 main( ) int aN , i , j , t; for ( i=0 ; iaj+1 ) t=aj ; aj=aj+1 ; aj+1=t ; for ( i=0 ;

13、 iN ; i+) printf( “%3d”, ai ); ,定义一个符号常量N代表要排序的数字个数,如何推广到任意个数排序?,#include main( ) int a6 , i , j , t; for ( i=0 ; iaj+1 ) t=aj ; aj=aj+1 ; aj+1=t ; for ( i=0 ; i6 ; i+) printf( “%3d”, ai ); ,在进行完第二轮比较后,实际上排序已经完成了,从第三轮开始,后面的比较都是多余的。 在这种情况下我们希望可以提前终止比较.,冒泡排序法的特殊情况,a0 a1 a2 a3 a4 a5,第1轮,第2轮,第3轮,第4轮,第5轮

14、,初始状态,为了解决问题,设置一个变量flag,用它记录在一轮比较中是否进行了交换。 在每轮比较开始前flag=0,如果在此轮比较中进行了交换,则flag=1,在一轮比较结束后,判断flag的值是否为1,如果值为0,说明在此轮比较中没有进行交换(即已经完成排序了),此时可以终止循环(即结束排序)。如果flag的值为1,则要继续进行排序。,#include main( ) int a6 , i , j , t , flag; for ( i=0; iaj+1 ) t=aj ; aj=aj+1 ; aj+1=t ; flag=1; i+ ; while ( flag ) ; for ( i=0 ;

15、 i6 ; i+) printf( “%3d”,ai ); ,例7: 用选择排序法对6个数进行排序(从小到大),选择排序方法: 第1轮比较时,用a0依次与a1到a5 进行比较,如果a0较大则进行交换,否则不变。第1轮结束 后,a0中为最小数. 以后各轮比较过程与第1轮类似.,a0 a1 a2 a3 a4 a5,7,9,5,7,4,5,2,4,7,9,5,7,4,5,7,2,9,7,1,2,初始状态,第1轮,第2轮,第3轮,第4轮,第5轮,7,9,5,7,输入6 个数给a0 到 a5,for i=0 to 5-1,for j=i+1 to 5,aiaj,真,假,aiaj,输出a0 到 a5,用嵌

16、套的for循环实现排序 外层循环控制进行几轮比较 内层循环控制每轮的比较,#include main( ) int a6 , i , j , t; for ( i=0 ; iaj ) t=ai ; ai=aj ; aj=t ; for ( i=0 ; i6 ; i+) printf( “%3d”, ai ); ,#include main( ) int a6 , i , j , t; for ( i=0 ; iaj ) t=ai ; ai=aj ; aj=t ; for ( i=0 ; i6 ; i+) printf( “%3d”, ai ); ,i=0 时, 要进行5次比较, a0与a1比,

17、 a0与a2比 a0与a5比, 最后a0中为最小数,i=1 时, 要进行4次比较, a1与a2比, a1与a3比 a1与a5比, 最后a1中为第2小的数,i=2 时, 要进行3次比较, a2与a3比, a2与a4比, a2与a5比, 最后a2中为第3小的数 .,用嵌套的for循环实现排序 外层循环控制进行几轮比较 内层循环控制每轮的比较,选择排序法第二种方法(从小到大),第二种方法: 两两比较后并不马上交换,而是找到最小数后记下其下标P。 在一轮比较完毕后,再将最小的数一次交换到位。比较次 数不变,交换次数减少。,a0 a1 a2 a3 a4 a5,9,1,初始状态,第1轮,第2轮,第3轮,第

18、4轮,第5轮,2,7,4,7,main() int a6 , i , j , p , temp; for( i=0 ; i6 ; i+) scanf(%d, ,1、第1轮比较 找到所有元素的最小值ap,然后将a0与ap交换,则第1轮结束后,a0中为最小数. 第1轮找最小值ap的方法:令p=0,扫描a1a5,有小于a0的即令p记录其下标,否则p不变.之后比较ap与剩余元素,若有比ap小的,则改变p值,否则p不变.该轮比较结束时,p记录的就是最小值的下标.,2、其他几轮与此类似,只是不要再动已排好的元素.,main() int a6 , i , j , p , temp; for( i=0 ; i

19、6 ; i+) scanf(%d, ,用嵌套的for循环实现排序 外层循环控制进行几轮比较 内层循环控制每轮的比较,例,初始: 49 38 65 97 76 13 27 ,i=1,13,49,一趟: 13 38 65 97 76 49 27 ,i=2,27,38,六趟: 13 27 38 49 65 76 97 ,例8:查找- 折半查找法,前提:数据已按一定规律(升或降序)排列好。 思路:先检索当中的一个数据是否所需,如不是,判断要找的数据在哪一边,缩小范围后再按同样方法继续检索,直到找到或找遍。 算法:设要找的数为x,n+1个数据已排好序存放在数组a中。 a、设low=0,high=n mi

20、d=(low+high)/2 b、if (x= =amid) 找到了; c、else if (xamid) 说明x在右边,让low=mid+1; else 说明x在左边,让high=mid-1。 重复b和c两步操作, 直到x=mid(找到)或lowhigh(找遍了)为止。,main() int a5=6,12,18,42,44; int low=0,mid,high=4,x; printf(请输入要查找的数 x=); scanf(%d, ,main() int a5=6,12,18,42,44; int low=0,mid,high=4,x,find=0; printf(请输入要查找的数 x=

21、); scanf(%d, ,7.2 二维数组的定义和使用,一、 二维数组的定义 1. 概念 : 一个一维数组, 它的每一个元素都是类型相同 的一维数组, 就形成一个二维数组,2. 定义形式 : 类型说明符 数组名 常量表达式1 常量表达式2 ; 如: int a34 ;,二维数组理解,每个元素ai由包含4个元素 的一维数组组成,二维数组a是由3个元素组成,3. 存储形式 : 数组的元素在内存中是连续存放的 int a33 ; 的存放形式如下 :,a10a11a12,a20a21a22,a00a01a02,a00 a01 a02 a10 a11 a12 a20 a21 a22,1000 1002

22、 1004 1006 1008 1010 1012 1014 1016,二、 二维数组的引用 数组元素的表示形式 : 数组名 下标 下标,注意 : (1) 每个下标都要用 括起来 如 a 2 1 不能写成 a 2,1 (2) 下标从0开始,且不要超过 定义的范围,三、 二维数组的初始化定义同时赋初值 1. 分行初始化 int a34= 1, 2, 3, 4 , 5, 6, 7, 8 , 9, 10, 11, 12 ; 此方法较直观, 第一对 内的数据赋给第一行数组元素, 依次类 推,2. 按数据的排列顺序对数组元素赋初值 int a34= 1, 2, 3, 4, 5, 6, 7, 8, 9,

23、10, 11, 12; 将数据依次赋给元素 a00 , a01 a23,注意: 此方法数据无明显的界限, 当数据较多时容易出错,3. 对数组的部分元素赋初值,未赋值元素自动取0 int a34= 1,2 , 3 ,4,5,6 ;,int a34= 1,2,3,4,5,6 ;,4. 对数组的全部元素赋初值时可以省略第一维的长度(行下标), 系统会根据数据的个数和第二维的长度自动求出第一维长度, 但第二维下标不可省. int b 2= 1, 2, 3, 4, 5, 6, 7, 8 ;,数组a 第一维长度为 3,数组b 第一维长度为 4,如仅对部分元素赋初值,要想省略数组的行数,则必须分行赋值。 i

24、nt a 4= 1, 2 , 0, 3, 4 , 5 ;,例9: 找出34矩阵中最大的数,并输出其行号和列号,N-S流程图表示算法 如下:,max,row,col,12,1,2,例9: 找出34矩阵中最大的数,并输出其行号和列号,max,0,row,0,col,5,9,3,0,12,1,2,#include main( ) int i , j, row=0, col=0 , max ; int a34=5,2,0,9,3,7,12,6,10,4,1,8; max=a00; for ( i=0 ; imax ) max=aij ; row=i ; col=j ; printf(“max=%dn”

25、, max); printf(“max=a%d%dn”, row , col); ,输出: max=12 max=a12,例10: 将一个矩阵进行转置(即原来的行变为列),第一种情况:矩阵不是方阵mn。,3 7 12 6,10 4 1 8,5 2 0 9,b10,b12,a01,a21,算法:for ( i=0 ; i3 ; i+ ) for (j=0 ; j4 ; j+) bji=aij;,3 7 12 6,10 4 1 8,5 2 0 9,#include main( ) int a34, b43 , i , j ; for ( i=0 ; i3 ; i+ ) for ( j=0 ; j4

26、 ; j+ ) scanf(“%d”, ,a01,b10,a21,b12,例11: 将一个矩阵进行转置(即原来的行变为列),第二种情况:矩阵是方阵nn。,10 4 1,3 7 12,5 2 0,0 1 2,0 1 2,0 1 2,0 1 2,3 7 12,10 4 1,5 2 0,算法一:同非方阵。用两个矩阵 for ( i=0 ; i3 ; i+ ) for (j=0 ; j4 ; j+) bji=aij;,例11: 将一个矩阵进行转置(即原来的行变为列),第二种情况:矩阵是方阵nn的。,10 4 1,3 7 12,5 2 0,0 1 2,0 1 2,0 1 2,0 1 2,3 7 12,1

27、0 4 1,5 2 0,算法二:转置后结果仍放在原矩阵。用一个矩阵 for(i=0;i=2;i+) for(j=0;j=2;j+) if(ij)/*条件很重要*/ t=aij; aij=aji; aji=t; ,main() int a33,i,j,t; for(i=0;i=2;i+) for(j=0;j=2;j+) scanf(%d, ,例12 读入下表中值到数组,分别求各行、各列及表中所有数之和,main() int x54,i,j; for(i=0;i4;i+) for(j=0;j3;j+) scanf(%d, ,7.3 字符数组和字符串,字符串常量: China,C语言中不能定义出字符

28、串变量。字符串在内 存的存储位置以及存储空间通过什么方式才能 得到呢?字符数组:每个元素的类型为char型, 即字符型。,字符串指若干有效字符的序列,可以包括 字母、数字、转义字符等,字符串用0 作为结束标志,回忆字符串知识,一、字符数组 1. 定义例 char c10, ch34;,2. 字符数组的初始化 1). 逐个字符赋值 2). 用字符串常量,7.3 字符数组和字符串,例 输出一个字符数组,#include main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); printf(n); ,二、字

29、符串 1、字符串存放及其结束标志 无字符串变量,用字符数组处理字符串 字符串结束标志:0,字符串在字符数组中的存放,数组名:字符数组(字符串)在内存的首地址。,作为字符串进行存储时,字符串与字符数组的长度可以不等,系统自动加0为结束标志。,字符串在字符数组中的存放,不能写成: char s15= China ; 用字符串作初值时,数组的长度应足够大以便能容纳全部字符和 0。,2、字符串的输入输出 逐个字符I/O: %c 整个字符串I/O: %s,例 用%c main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, ,例 用%s main() cha

30、r str5; scanf(“%s”, str); printf(“%s”, str); ,用字符数组名,不要加 printf(“%s”,a); ,main( ) char a =“Hello”; printf(“%s”,a); ,结果:Hello#-=*,结果:Hello,printf的s输出字符串,main() char a=h,e,l,0,l,o,0; printf(%s,a); ,输出:hel,数组中有多个0时,遇第一个结束,用“%s”输出时,遇0结束,main() int i; char a5; scanf(%s,a); for(i=0;i5;i+) printf(%d,ai); ,

31、运行情况: (1)若输入 hel , 正常 (2)若输入 hell , 正常 (3)若输入 hello , 用%s 输出时,会出现问题,输入字符串长度数组维数,scanf的s输入字符串,scanf的s输入字符串,#include main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a); ,运行情况: 输入:How are you? 输出:a=How b=are c=you? 输入:How are you? 输出:a=How,scanf中%s输入

32、时,遇空格或回车结束,3、常用的字符串处理函数 包含在头文件 string.h,(1)字符串输出函数puts 格式:puts(字符数组) 功能:向显示器输出字符串(输出完,换行) 说明:字符数组必须以0结束,(2)字符串输入函数gets 格式:gets(字符数组) 功能:从键盘输入一以回车结束的字符串放入字符数组中, 并自动加0 说明:输入串长度应小于字符数组维数,例 #include main( ) char string80; printf(“Input a string:”); gets(string); puts(string); 输入: How are you? 输出: How ar

33、e you ?,#include main() char s180 = “C Language”; char s280= Program; printf(%s, s1); printf(%s, s2); ,运行结果为: C LanguageProgram,讨论: printf ()和puts()函数一次输出整个字符串区别,#include main() char s180 = “C Language”; char s280= Program; puts(s1); puts(s2); ,运行结果为: C Language Programe,注意:puts()函数输出字符串后自动换行,#inclu

34、de main() char a15,b5,c5; scanf(%s,a); printf(a=%sn,a); ,运行情况: 输入:How are you? 输出:a=How,#include main() char a15,b5,c5; gets(a); printf(a=%sn,a); ,使用scanf()的%s整体输入,空格或回车结束 使用 gets() 函数,只以回车键结束输入,运行情况: 输入:How are you? 输出:a= How are you?,讨论:scanf()的%s与gets() 函数的区别?,(3)字符串连接函数strcat 格式:strcat(字符数组1,字符数

35、组2) 功能:把字符数组2连到字符数组1后面 返值:返回字符数组1的首地址 说明:字符数组1必须足够大 连接前,两串均以0结束;连接后,串1的0取消, 新串最后加0,(4)字符串拷贝函数strcpy 格式:strcpy(字符数组1,字符串2) 功能:将字符串2,拷贝到字符数组1中去 返值:返回字符数组1的首地址 说明:字符数组1必须足够大 拷贝时0一同拷贝 不能使用赋值语句为一个字符数组赋值,例 char str120,str220; str1=“Hello!”; () str2=str1; (),strcpy与strcat举例,#include #include void main() ch

36、ar destination25; char blank = , c = C+, turbo = Turbo; strcpy(destination, turbo); strcat(destination, blank); strcat(destination, c); printf(%sn, destination); ,Turbo C+,(5)字符串比较函数strcmp 格式:strcmp(字符串1,字符串2) 功能:比较两个字符串 比较规则:对两串从左向右逐个字符比较(ASCII码), 直到遇到不同字符或0为止 返值:返回int型整数,a. 若字符串1 字符串2, 返回正整数 c. 若字

37、符串1= 字符串2, 返回零 说明:字符串比较不能用“=”,必须用strcmp,字符串比较的规则: 比较两个字符串中从左到右依次对应字符的 ASCII码值,char s80= IBM; int n; if(strcmp(s, COMPUTER )0) n=1; if(strcmp(s, COMPUTER )=0) n=0; if(strcmp(s, COMPUTER )0) n=-1;,运行结果: n =1,(6)字符串长度函数strlen 格式:strlen(字符数组) 功能:计算字符串长度 返值:返回字符串实际长度,不包括0在内,例 对于以下字符串,strlen(s)的值为: (1)cha

38、r s10=A,0,B,C,0,D; (2)char s =“tv0willn”; (3)char s =“x69082n”;,答案:1 3 1,#include string.h main() int m,n; char str80=C language; m=strlen(str); n=sizeof(str); printf(m is %dn n is %dn ,m,n);,程序的运行结果: m is 10 n is 80,#include #include main() char str1 = ”Hello!, str2 = ”How are you?”,str20; int len1

39、,len2,len3; len1=strlen(str1); len2=strlen(str2); if(strcmp(str1, str2)0) strcpy(str,str1); strcat(str,str2); else if (strcmp(str1, str2)0) strcpy(str,str2); strcat(str,str1); else strcpy(str,str1); len3=strlen(str); puts(str); printf(”Len1=%d,Len2=%d,Len3=%dn”,len1,len2,len3); ,例 strcmp与strlen举例,How are you?Hello! Len1=6,Len2=12,Len3=18,三、二维字符数组与一组字符串,char str410= W, a, n, g, c, h, e, n, g,0, L, i, 0, J, i, a, n, g, 0, S, u, n, 0 ;,等价于: char str410= Wangcheng, Li, Jiang, Sun;,三、二维字符数组与一组字符串,char str410= Wangcheng, Li, Jiang, Sun ;,说明: (1)可以使用二维字符数组存储一组字符串,,第一维的长度(即行数)取决于字符串的个数 ,,第二维的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论