首页 > 编程知识 正文

c语言函数调用数组,c语言一维数组定义和赋值

时间:2023-05-03 12:52:56 阅读:144586 作者:3811

《C语言 一维数组的定义和引用 数组》可供会员共享,在线阅读。 更多相关《C语言 一维数组的定义和引用 数组(47页珍藏版)》请在人人文库网搜索。

1、第7章数组编号:结构型,元素由基型(整、实、字)组成。 有序的同种数据的集合。 7.1一维数组的定义和引用7.1.1一维数组的定义形式:类型说明符数组名称常量表达式,如int a5; 浮点b10; 说明:1.命名约定:数组名称由合法标识符组成。2 .数组名称后面的是常量表达式,包括整数、字符和符号常量表达式。 例如,int a2 3、b5、ca、_d8、xyz# (#=35 ) #define N 5 main () int aN; printf(“%dn”,a1=100 ); 另一方面,inta(10 )、bx、%5、83、x-。

2、y50、5x100是正确的吗? 另外,int i=5; int a5 i是正确的吗? 3 .数组长度int a5 a0、a1、a2、a3、a4五个要素,下标为0至4注意:超出turbo c定义的数组下标要素的要素可以参考,系统不检查。例T7-0-1.c main () int i,a5; for(I=0; i=4; I ) printf(「a%d=%dn”,I,ai=i 1 ); printf(「a5=%dt”、a5 ); printf(「a6=%dn”,a6 );运行结果: A0=1a1=2a2=3a3=4a4=5a5=-30a6=285。

3,4 .数组大小的定义只能是常数,不能变量或动态定义。 例7-0-2.cmain(intn=5,an; a1=100; printf(「a1=%dn”,a1 ); 编译时,constantexpressionrequiredinfunctionmain (主函数需要常量表达式),7.1.2一维数组元素的引用规则)1.先定义,后使用。 2 .引用格式:数组名称的下标可以是整数、字符类型的常量、变量或表达式。 3 .引用方法:针对元素而不是整个序列。 例如,将值依次分配给a0=ab - a a b -96 a3 - a2*2例T7-1. C序列a,反之亦然。

4、依次输出main(inta5、I; for(I=0; i=0; i- - ) printf(「a%d=%dn”、I、ai );执行结果: a4=4 a3=3 a2=2 a1=1 a0=0,7.1.3实现一维数组初始化的方法是:1.在定义时将数组元素初始化为: int a5=1、2、3、4、5 .例如3 .初始化时给所有元素0的值。 例如,inta5=0、0、0、0; 或int a5=0; 4 .给所有元素初始值时,可以不指出长度。 例如,inta5=2、4、6、8、10; 或者inta=2,4,6,

五、八、十; 效果是一样的。例T7-1-1.c定义时对数组元素初始化主(inti )的inta5=2、4、6、8、10; for(I=0; i=4; I ) printf(「%dn”、ai ); 注:静态存储类。 这与新的ANSI标准一致。 使用静态时,数组元素的值存储在静态区域中。运行结果:2 4 6 8 10,7.1.4一维数组程序示例t7-2.cFibonacci数列问题关于Fibonacci数列问题关于斐波那契算法:前两个数分别为1,以后各个数均为前两个数main ) ) int i; intf 20=1,1; for(I=2; i20; I ) fi=fi-。

6、2 fi-1; for(I=0; i20; I ) if(I%5=0) printf (“n”); printf(「d”、fi;运行结果: 11235813213455144233776109871597258441816765, 例T7-3.c用起泡法排序6个(从小到大),构想:比较2个相邻数,小则移动到开头,不小则进行比较,第一次大数沉底第二次第三次第四次第五次,其中n=6

7,22290,00009,8555,5844,44822,22280,00004,450,00055,005,422,222,240,240,4040,004,004 printf(「input6numbers:n”; for(I=1; iai 1) t=ai; ai=ai 1; ai 1=t; printf (“thesortednumbers : n”for (I=1; i7; I ) printf(“%d__”,a。

8、;运行: input 6 numbers:输入:9 8 5 4 2

0 输出:0 2 4 5 8 9,.,.,7.2 二维数组的定义和引用 7.2.1 二维数组的定义 1.一般形式:类型说明符 数组名常量表达式常量表达式 如:float a34 定义数组a具有三行四列 在C中,可将二维数组看着是特殊形式的一维数组。 如上述定义可看着是具有三个元素的一维数组,而每个元素又可看作是包含四个元素的一维数组。 因此,上述定义相当于: float a04, a14, a24 注 :实际应用时若如此定义则被认为是重定义。 2.二维数组各个元素在内存中的存放顺序是: 按先行后列的顺序依次存放,.,例。

9、T7-3-1.c main( ) int i, j, a23; for(i=0; i2; i+) for(j=0; j3; j+) scanf(“%d”, ,输入:1 3 5 7 9 11 输出: float a23,k; for(i=0;i2;i+) for(j=0;j3;j+) scanf(%f, ,for(j=0;j3;j+) scanf(“%f%f”, 共24个元素,在内存中排列的顺序是:第三维变化最快,然后是第二维,第一维最慢。,.,7.2.2 二维数组的引用 形式:数组名下标下标 其中:下标是整型或字符型的常量,变量或表达式。(定义时不能使用变量) 如: a12 aij 1.数组元。

10、素可出现在表达式中,如: a12=a22/2 2.使用数组元素时,应注意不要超出其定义的范围; 如: int a23; a23=5;,.,7.2.3 二维数组的初始化 1.按行给二维数组赋初值 如: int a23=1,2,3,4,5,6; 2.按数组元素排列的顺序赋初值 如:int a23=1,2,3,4,5,6; 3.对部分元素赋初值,按行赋值较直观 如:int a23=2,5,3;,.,4.全部元素赋值时,第一维下标可省略 如: int a 3=1,2,3,4,5,6; 又如:int a 4=0,0,3,0,0,10;,.,7.2.4 二维数组程序举例 例T7-4 将一个二维数组的行和列。

11、元素互换,存到另一个二维数组中 。,.,T7-4.c两数组行列互换 main( ) int a23=1,2,3,4,5,6; int b32,i,j; printf(“array a:n”); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(“%4d”, aij); bji=aij; printf( n”); printf(“array b: n”); for(i=0;i=2; i+) for(j=0;j=1;j+) printf(“%4d”,bij); printf(“ n”); ,.,例T7-5.c 有3 4矩阵,求出其中最大元素所在的行号和列号 main( 。

12、) int i, j, r=0,c=0, max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for(i=0;imax) max=aij; r=i;c=j printf(“max=%d,row=%d, colum=%dn”,max,r,c); ,运行结果: max=10,row=2,colum=1 问题:在比较前 为什么要把a00赋给max?,.,.,7.3 字符数组 字符型数组:用于存放字符型数据。 一维字符数组:存放一个字符串(每个数组元素存放一个字符) 二维字符数组:存放多个字符串(行数是字符串的个数) 7.3.1 字符数组的定义 形式:。

13、char 数组名常量表达式 char 数组名常量表达式常量表达式 常量表达式:整、字符、符号常量。 例: char a5; a0=C; a1=H;a2=I; a3=N; a4=A;,.,7.3.2 字符数组的初始化 如:char a5=C, H, I, N, A; char b5=C, H, I, N, W, U; 编译时将指出:初始化值太多 char c5=C, H, I; char d =C, H, I, N, A 系统自动确认其长度为5,.,7.3.3 字符数组的引用 例T7-6.c 输出一个字符串 main( ) char c10=I, _, a, m, _, h, a, p, p, 。

14、y; int i; for(i=0;i10;i+)printf(“%c”, ci); print(“ n”); ,运行结果: I_am_happy,.,T7-7.C输出一个钻石图 main() char diamond5= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,*; int i; int j; for (i=0;i5;i+) for(j=0;j5;j+) printf(%c,diamondij); printf(n); ,.,7.3.4 字符串和字符串结束标志 几点说明: (1)字符串:用双引号括起的若干字符,可将其存放在一维或两维字符型数组中。 (2)字符串。

15、结束标志为: 0 (既无动作,又不显示) (3)字符串的长度:第一个 0以前字符的个数,.,(4)在字符型数组或字符串中遇 0,即认为该字符结束; (5)字符串可对字符型数组初始化 如:char c =“ I_am_happy” ; 系统自动在数组的最后加了 0 ,长度为11 或char c =“ I_am_happy”; 系统自动在数组的最后加了 0 ,长度为11,.,相当于 c = I,_,a,m,_,h,a,p,p,y, 0; 而 char c10=“CHINA ” 注意:字符 0 并不一定都在字符数组的后面,输出时遇到第一个 0 结束; 例T7-7-1.c main( ) char a。

16、 = a, b, 0, 1, 2; char b =“ab 0cd” ; printf (“%s n%s n”, a,b); ,运行结果: a b a b,.,7.3.5 字符数组的输入输出 1.字符数组的输出:,.,例T7-7-2.c main( ) int i; char a10= “CHINA” ; char b18=“CHINA 0CHINA 0CHINA” ; for(i=0;i10;i+) printf(“%c”,ai); printf (“ n”); printf (“%s n”,a); for(i=0;i 串2 返回值为正数 其值是Ascii码的差值 (3)串1 串2 返回值为。

17、负数 其值也是Ascii码的差值,.,例T7-7-8.c main( ) int i,j,k; char a1 =“wuhan”, a2 =“beijing” ; i=strcmp(a1,a2); j=strcmp(“china”, “korea”); k=strcmp(a2, “beijing” ); printf(“i=%d nj=%d nk=%d n”,i,j,k); 注意:两字符串比较不能用“=” 运算符, 虽然编译无错,但结果不对,运行结果: i=21 i=w-b=119-98=21 j=-8 j=c-k=99-107=-8 k=0 k=b-b=98-98=0,.,6.求字符串长度函。

18、数 形式:strlen(字符数组) 功能:检测字符串长度,返回字符串长度值,不包括 0 ; 例T7-7-9.c main( ) char a110=“ china” ; printf (“%d n”,strlen(a1); printf (“%d n”, strlen(“beijing 0wuhan”); ,运行结果:5 7,.,7.大小写字母转换函数:strlwr(字符串) 8.小大写字母转换函数:strupr(字符串) 例T7-7-10.c main( ) char a16=“CHinA”, a2 =“wuHAn” ; printf (“%s n”,strlwr(a1); printf (。

19、“%s n”,strupr(a2); ,运行结果:china WUHAN,.,7.3.7 字符数组应用举例 例T7-8.c 输入一行字符,统计单词数,单词间用_ 分隔。 main( ) char s81; int i, n=0, w=0; char c; gets(s); for(i=0;(c=si)!= 0 ; i+) if(c=_ ) w=0; else if(w=0) w=1; n+; printf(“There_are_%d words_in_the_line n”, n); ,输入:I_am_a_boy. 输出:There_are_4_word_in_the_line,其中: n: 统计单词数 w: 单词标志,在单词中 为1,出了单词为 0 i: 11,。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。