C语言-关于数组

[@C语言]关于数组
1 数组的定义:数组是一个变量,由数据类型相同的一组元素组成,内存中的一串连续空间。
2 数据的结构和基本要素
标识符:数组的名称,用于区分不同数组。
数组元素:向数组中存放的数据。
元素下标:对数组元素进行编号。
元素类型:数组元素的数据类型。
**注:*数组只有一个名称,即标识符。(用来表示数组的变量名)
元素下标标明了元素在数组中的位置,从0开始.
数组中的每个元素都可以通过下标来访问
数组长度不变,避免数组越界。
数组中所有元素都属于同一类型。
3 基本运用:(循环输出,求平均值,查询数字)

有一列数组:8,4,2,1,23,344,12
//定义数组,并初始化
int num []={8,4,2,1,23,344,12};
int i; //循环变量
int sum,searchnum;
double avg;
//循环输出
for (i=0;i<7;i++)
{
printf("%d\t",num[i]);
}
//求和和求平均值
for(i=0;i<7;i++)
{
sum+=num[i];
}
avg=sum/7.0;
//查找数字
printf(“请输入要查找的数字\n”);
scanf_s("%d",&searchnum);
for(i=0;i<7;i++)
{
//一个一个的对比,遍历
if(searchnumnum[i])
{
printf(“找到了\n”);
break;
}
if(i
7)
printf(“没找到\n”);
4 冒泡排序
这个就用例子来讲解吧!
例:
/
问题:循环录入5个整形数字,进行降序排列后输出结果
冒泡排序:25 16 9 90 23
基础原理:遍历与交换
第一轮循环:某数字小于后面数字,交换
第1次 16 25 9 90 23
第2次16 25 9 90 23
第3次16 25 90 9 23
第4次16 25 90 23 9
发现: 需要比较多轮,(数组长度-1轮)
每一轮的比较次数比上一轮-1次 */
#include<stdio.h>
#include<stdlib.h>
#define N 5 //宏定义,不是必须的
int main ()
{
int i,j,temp;
int nums[N]={16,2,3,45,2};
//外层循环控制循环轮数
for(i=0;i<N-1;i++)
{
//内层循环控制每轮的比较次数
for(j=0;j<N-i-1;j++)
{
//如果当前数值小于后面一个数就交换
if(nums[j]<num[j+1])
{
temp=nums[j+1];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
printf(“排序后的结果为\n”);
for(i=0;i<N;i++)
{
printf("%d\t",nums[i]);
}
}
4 逆序
第一个元素最后一个元素交换
第二个元素与倒数第二个元素交换
核心算法
for(i=0;i<N;i++)
{
temp=num[i];
num[i]=num[N-i-1];
num[N-i-1]=temps;
}
5 数组元素的删除与插入
需求:1.查找要删除的数字下标。
2.从下标开始后面一个覆盖前面一个
3.数组总长度减一

猜你喜欢

转载自blog.csdn.net/qq_43635924/article/details/84108156