2.1-2.2上官c语言学习

目录

第四章 数组

一维数组

 如何定义一个数组

数组如何编译 

初始化方式

计算数组大小

案例

冒泡排序法

简单选择排序法

二维数组

如何定义二维数组

赋值方式

编译方式

案例


第四章 数组

一维数组

 如何定义一个数组
  1. 相同数据类型——[]的解释 ——定义的时候表示数组中元素——从a[0]开始计数
  2. 地址空间连续
数组如何编译 

结合循环控制语句

下标注法访问

地址连续的

初始化方式
  1. 全部赋值
  2. 部分赋值——int a[10]={3,5,2,5}
  3. 初始化为0 ——int a[]={2,435,543,654}
  4. sizeof不是函数
计算数组大小

 size=sizeof(array)/sizeof(array[0])

sizeof能计算括号中对应数据的内存空间的大小 

Tips:sizeof不是函数

案例
  1.  数组初始化及逆序输出
    #include<stdio.h>
    int main()
    {
    	int arr[10];
    	int i;
    	
    	for(i=0;i<10;i++)
    	{
    		arr[i]=i;
    	}
    	puts("当前数组是\n");
    	
    	for(i=0;i<10;i++)
    	{
    		printf("%d ",arr[i]);
    	}
    	
    	puts("\n逆序输出后是\n");
    	for(i=9;i>=0;i--)
    	{
    		printf("%d ",arr[i]);
    	}
    	
    	return 0;
    }

  2. 斐波那契数列
#include<stdio.h>
int main()
{
	int arr[30];
	int i;
	int arrsize;
	arrsize=sizeof(arr)/sizeof(arr[0]);
	arr[0]=0;
	arr[1]=1;
	for(i=2;i<arrsize;i++)
	{
		arr[i]=arr[i-1]+arr[i-2];
	}
	
	for(i=2;i<arrsize;i++)
	{
		printf("%d ",arr[i]);
	}
	
	
	return 0;
}
冒泡排序法
#include<stdio.h>
int main()
{
	int array[]={12,8,13,9};
	int i,j;
	int len;
	int tmp;
	len=sizeof(array)/sizeof(array[0]);
	for(i=0;i<len-1;i++)
	{
		for(j=0;j<len-i-1;j++)
		{ 
			if(array[j]<array[j+1])
			{
				tmp=array[j];
				array[j]=array[j+1];
				array[j+1]=tmp;
			}
		}
	}
	
	for(i=0;i<len;i++)
	{
		printf("%d ",array[i]);
	}
	return 0;
}
简单选择排序法
#include<stdio.h>
int main()
{
	int array[]={12,8,13,9};
	int i,j;
	int len;
	int tmp;
	len=sizeof(array)/sizeof(array[0]);
	
	for(i=0;i<len-1;i++)
	{
		for(j=i+1;j=len;j++)
		{
			if(array[i]<array[j])
			{
				tmp=array[i];
				array[i]=array[j];
				array[j]=tmp;
			}
		}
	}
				
	
	for(i=0;i<len;i++) 
	{
		printf("%d ",array[i]);
	}
	
	return 0;
}

二维数组

如何定义二维数组

int[a][b] a行b列

赋值方式
  1. 每行赋值
  2. 某个特定元素赋值
  3. 只对某几行元素赋值
  4. 全部赋值(行可以不写,列必须要写)
编译方式

循环嵌套 

案例
#include<stdio.h>
int main()
{
	int array[3][4]={1,12,34,45,32,4325,654,76,32,54,655,76};
	int max;
	int i;
	int j;
	int tmp;
	
	max=array[0][0];
	for(i=0;i<3;i++)
	{
		for(j=0;j<4;j++)
		{
			if (max<array[i][j])
			{
				tmp=max;
				max=array[i][j];
				array[i][j]=max;
			}
		}
	}
	
	printf("max=%d",max);
	
	
	
	
	
	return 0;
}
}

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值