C语言 一维数组

C语言 一维数组
数组定义:同一类型的多个元素的集合。
数组名不能与其他变量名相同,数组的定义类型与变量的定义类型相同。
例子:int arr[16]={1,2,3,4,5                  };
可以打印数组在内存中的地址:printf("%",sizeof(arr));
数组的长度,是用数组的大小/开辟类型的字节长度     sizeof(arr)/sizeof(int);
如果数组的长度够长,但是后面没有那么多元素,则剩余的元素都为当前类型的默认值;
arr[0]=200; 数组元素可以重新赋值,就是左边这个,第0个元素重新赋值为200,
有n个元素,最后一个是arr[n-1];
核心:[ ]下标符
打印数组的元素或者编辑数组,都不能超过数组的边界,否则会崩溃。
难点:冒泡排序
#include<stdio.h>
void main()
{
	int t = 0;
	int a[]={9,5,4,7,8,2,1,6,3};
	for(int i = 0;i<(sizeof(a)/sizeof(int));i++){
	    for(int j = 1;j<(sizeof(a)/sizeof(int));j++){
		if(a[j]>a[j-1]){
			a[j]=a[j]+a[j-1];
			a[j-1]=a[j]-a[j-1];	//黑匣子,数字交换
			a[j] = a[j]-a[j-1];
		}
	    }
	}
	while(t<9){
		printf("%d  ",a[t]);
		t++;
	}
	getchar();
}
其实冒泡排序的一个容易错的地方是j的初始值的定义,容易定义为0开始,然后导致函数无法运行。
C语言数组中常用到的英文单词:
array  数组 reference   引用 element 元素 address 地址 sort 排序
character  字符  string 字符串 subscript  下标
数组定义中 [ ]  方括号内可以是符号常量或者常量表达式;
而且可以和变量一起定义:     int a,b,c,arr[10];
C语言规定只能逐个引用数组元素而不能一次引用整个数组;
对全部数组元素赋值初值时,数组长度可以省略;
arr[]={1,2,3,4,5,6,7,8.......................};
定义字符串要特别注意的格式:      char str[100]="Hellow";    //意思是定义了一个99个字符末尾还接了一个\0
下面几个是今天学习的小编程:
1、定义一个数组,给它初始值,并打印。
#include<stdio.h>
void main()
{
	int a[10] = {0,1,2,3,4,5,6,7,8,9};
	for(int i = 9;i>=0;i--){
		printf("%d\n",a[i]);	
	}
	getchar();
}
2、输入同一行三个数字,并打印出三个数
#include<stdio.h>
void main()
{
	printf("请输入三个数");
	int a[3];
	scanf("%d,%d,%d",&a[0],&a[1],&a[2]);
	printf("您刚刚输入的数字有:");
	for(int i = 0;i<3;i++){
	printf("%d  ",a[i]);
	}
}
3、逐个输入10个数,并打印出输入过的所有数
#include<stdio.h>
void main()
{
	printf("请输入十个整数:");
	int i=0;
	int t = 0;
	int a[10];
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	printf("您刚刚输入过的数为:");
	while(t<10){
		printf("%d  ",a[t]);
		t++;
	}
	getchar();
}
4、输入三个数字,并求出它的平均值
#include<stdio.h>
void main()
{
	printf("请输入三个整数:");
	int i=0;
	int t = 0;
	float S = 0;
	int j = 0;
	int a[10];
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	for(t;t<3;t++){
		S=S+a[t];
		//printf("1%f%d\n",S,t);
		//S=S/t;
		//printf("2%f%d\n",S,t);
	}
	//printf("%f\n",t);
	printf("平均值为:%f",S/t);
}
5、输入一个数组,再输入一个数,并查找数组中是否有这个数:
#include<stdio.h>
void main()
{
	printf("请输入五个整数:");
	int i=0;
	int a[5];
	for(i;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	printf("——————分———隔————线———————\n");
	printf("请输入您要查找的数:");
	int n=0,c = 0;
	scanf(" %d",&n);
	for(c;c<(sizeof(a)/sizeof(int));c++){
		if(n==a[c]){
		printf("1\n");
		break;
		}
		else printf("0\n");
	}	
}
今天学习的数组都非常的实用;也相当的简单。




### C语言一维数组和二维数组简介 #### 1. **一维数组** 一维数组是最简单的数组形式,它是一组相同类型的元素的有序集合。每个元素可以通过索引来访问,索引从0开始。 **声明语法:** ```c 类型名 数组名[数组长度]; ``` 例如: ```c int arr[5]; // 声明一个包含5个整数的一维数组 ``` 你可以通过下标来初始化或修改数组中的元素: ```c arr[0] = 1; // 将第一个元素设置为1 arr[1] = 2; // ... printf("%d", arr[0]); // 输出第1个元素的值 ``` **优点:** - 简单易用,适合处理线性数据结构。 - 访问速度快,因为内存布局是连续的。 --- #### 2. **二维数组** 二维数组可以看作是由多个一维数组组成的矩阵。每一行是一个一维数组,整个二维数组由若干这样的行组成。 **声明语法:** ```c 类型名 数组名[行数][列数]; ``` 例如: ```c int matrix[3][4]; // 声明一个3行4列的二维数组 ``` 同样地,你可以通过两个维度的索引来初始化或访问其中的元素: ```c matrix[0][0] = 1; // 第一行第一列设为1 matrix[0][1] = 2; // ... for (int i = 0; i < 3; ++i) { for (int j = 0; j < 4; ++j) { printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]); } } ``` **存储方式:** C语言中,二维数组按照行优先的方式存放在内存中。即先存放完整的第一行,再放第二行,以此类推。这意味着 `matrix[1][0]` 的地址紧接在 `matrix[0][3]` 后面(假设每行列长均为固定)。 --- ### 示例代码 下面展示了一个简单的例子,分别创建并操作了一维数组和二维数组: ```c #include <stdio.h> int main() { // 创建并初始化一维数组 int oneDArray[] = {1, 2, 3}; // 打印所有元素 for(int i=0;i<3;++i){ printf("oneDArray[%d]: %d\n", i ,oneDArray[i]); } // 创建并初始化二维数组 int twoDArray[][3] = {{1, 2, 3}, {4, 5, 6}}; // 遍历打印所有的元素 for(int row=0;row<2;++row){ for(int col=0;col<3;++col) printf("twoDArray[%d][%d]: %d ", row,col,twoDArray[row][col]); printf("\n"); } return 0; } ``` 上述程序将依次输出各个位置上保存的数据内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值