C语言数组方法有很多种,不知道大家都熟悉了没有呢,下面一起去了解一下C语言数组方法吧!
1. 输入元素的值:
int i,a [10];
for ( i = 0; i < 9; i ++ );
a[i] = i;
(1) 正序排列: (2)倒序排列:
for ( i = 0; i < 10; i ++) for ( i = 9; i >= 0; i -- ) printf (“%d”, a[i]);printf(“%d”, a[i]);
2. 初始化元素的值:
(1) 在定义时,将数组元素一次放在一对花括号里;
eg: int a[10]={1,2,3,4,5,6,7,8,9,0};
(2)可以只给一部分元素赋值:
eg: int a[10]={1,3};
(3)使数组全部元素为0:
eg: int a[10]={0,0,0,0,0,0,0,0,0,0};或者 int a[10]={0};
(4) 在对全部元素赋初值的时候,由于元素数已经确定,因此,可以不指定数组长度。(注:数组长度与提供初值个数不相同时,则长度不可以省略。)
3. 巧妙地将两个元素列在一个循环中输出:(用for循环处理fobonacci数列); eg:int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-1]+f[i-2];
4. 数列Fobonacci数列核心:
int f[20]={1,1};
for(i=2;i<20;i++)
f[i]=f[i-1]+f[i-2];
5.换行操作:
for (i=0;i<=20;i++) /*当然也可以在for循环中处理,直接将 {if (i%5= =0)printf(“ ”); if (i%5= =0)printf(“ ”);插入换行*/ Printf(“%12ld”,f[i]);
}
6. 起泡法:
int a[10];
for (j=0;j<9;j++) /*进行n-1趟比较*/
for (i=0;i<9-j;i++) /*在j趟比较中,比较n-1次*/
if(a[i]>a[i+i])/*由小到大排列,if (a[i]
7. 初始化二维数组:
分行给二维数组赋初值;
将所有的元素都写在一个花括号里;
对部分元素赋值:
1) int a[3][3]={{3},{5},{9}};只讲0列元素赋值
2) int a[3][3]={{1}, {0,6},{0,0,11}}; 对部分元素赋值,对非0元素少使用方便
3) int a[3][3]={{1}, {5,6}}; 只对几行元素赋值
4) int a[3][3]={{1}, {},{9}}; 对第二行元素赋值
对全部元素赋值可以省略一维长度:
对部分元素赋初值,在省略一位长度时,应分行赋值:
8. 二维数组的输入输出:
输入:直接定义
输出:
for (i=0;i<=2;i++)
{for (j=0;j<=1;j++)
printf (“%5d”,b[i][j]);
printf (“ ”);
}
9. 二维数组的行列转换:
b[j][i]=a[i][j];
10. 数组中求最大值并输出行列号:
Eg: int i,row=0,colum=0,max;
int a[3][4]={1,2,3,4,5,6,,7,8,9,10,11,12};
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;}
11. 字符数组的初始化方法:
逐个字符初始化:
eg:char c[10]={I, , a, m, , h, a, p, p, y};
1) 在定义字符数组时,不初始化,则数组中的各元素的之不可预料;
2) 如果花括号中提供的初值个数(即字符个数)大于数组的长度,则按语法错误
处理;
3) 如果花括号中提供的`初值个数(即字符个数)小于数组的长度,其余元素自动
定为空字符即();
如果提供的初值个数与数组长度相同,则在定义时可以省略数组长度; 也可以定义一个二维数组:
eg:char diamond[5][5]={{ },{ },{ },{ },{ }}; 用字符串常量,使字符数组初始化:
eg: char c[ ]={“I am happy”};或 char c[ ]= “I am happy”;
12. 字符数组的输出:
一维: 二维:
for (i=0;i<=11;i++) for (i=0;i<=11;i++)
printf (“%c”,c[i]); for (i=0;i<5;i++)
printf(“ ”);printf(“%c”,diamond[i][j]);
13. 字符数组输出最大值:
eg:if (strcmp(string,str[1]>0)
strcpy (string,str[0]>0);
else
strcpy (string,str[1]);
if (strcmp (str[2],string>0)
strcpy (string,str[2]);
printf(“%s”,string);