参考翁恺的C语言程序设计视频
#include
int main()
{
int x;
double sum=0;
int cnt=0;
int number[100]; //定义数组,即定义了一个叫做number的数组变量。
scanf("%d", &x);
while(x!=-1)
{
number[cnt]=x; //对数组中的元素进行赋值。为了搞清楚这段代码是怎么做事情的,在下边加入调试代码。
//调试代码开始
{
int i;
printf("%d\t",cnt);
for(i=0;i<=cnt;i++)
{
printf("%d\t",number[i]);
}
printf("\n");
}
//调试代码结束
sum+=x;
cnt++;
scanf("%d", &x);
}
if(cnt>0)
{
printf("%f\n", sum/cnt);
//下面的代码是为了在算出一个平均数后,再用一个循环**遍历数组**,挑出number中比平均数大的number。
int i;
for(i=0; isum/cnt)
{
printf("%d\n",number[i]);
}
}
}
return 0;
}
输入1 2 3 4 5后,得到如下。再输入-1,得到平均数和比平均数大的数字。
sunyuhang@666:~/c$ ./1
1 2 3 4 5
0 1
1 1 2
2 1 2 3
3 1 2 3 4
4 1 2 3 4 5 //这些是调试代码生成的。
-1
3.000000
4
5
#include
int main(void)
{
const int number =10; //数组的大小
int x;
int count[number]; //定义数组
int i;
for(i=0;i=0 && x<=9)
{
count[x] ++; //数组参与运算
}
scanf("%d", &x);
}
for(i=0;i
输出为:
sunyuhang@666:~/c$ gcc 2.c -o 2
sunyuhang@666:~/c$ ./2
1 1 2 2 3 4 5 5 5 6 6 6 6 6
-1
0:0
1:2
2:2
3:1
4:1
5:3
6:5
7:0
8:0
9:0
#include
//找出key在数组a中的位置,length表示数组的长度。如果找到,返回位置,没找到返回-1。
int search(int key,int a[],int length); //函数声明
int main()
{
int a[]={2,3,4,5,6,7,8,9,0,12,13,34,45};
int x;
int loc;
printf("请输入一个数字:");
scanf("%d", &x);
loc=search(x,a,sizeof(a)/sizeof(a[0])); //sizeof(a)给出整个数组所占据内容的大小,
if (loc!=-1) //sizeof(a[0])给出数组中单个元素的大小,
{ //相除就得到数组中元素的个数,即得到数组的长度。
printf("%d在第%d个位置上\n",x,loc);
}
else
{
printf("%d不存在\n",x);
}
return 0;
}
int search(int key,int a[],int length) //数组作为函数参数时,往往必须再用另一个参数来传入数组的大小。
{
int ret=-1;
int i;
//遍历数组去判断我们要找的那个东西是否存在。如果存在,则返回key值并break出来。
//如果遍历完数组仍然没有找到我们想要的key,则ret返回初始值-1。
for(i=0;i
输出为:
sunyuhang@666:~/c$ ./3
请输入一个数字:4
4在第2个位置上
声明一个 x 行 y 列的二维数组,形式如下:
type arrayName [ x ][ y ];
int a[3][4] = {
{0, 1, 2, 3} , // 初始化索引号为 0 的行
{4, 5, 6, 7} , // 初始化索引号为 1 的行
{8, 9, 10, 11} // 初始化索引号为 2 的行
};
列数是必须给出的,行数可以由编译器来数;每行一个{},逗号分隔。
下面的初始化与上面是等同的:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
实例:
#include
int main ()
{
int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}}; //定义一个5行2列的数组
int i, j;
for ( i = 0; i < 5; i++ ) //二维数组的遍历
{
for ( j = 0; j < 2; j++ )
{
printf("a[%d][%d] = %d\n", i,j, a[i][j] );
}
}
return 0;
}