【C】C语言复习_第五天_数组

学习内容:

5、数组


学习时间:

2020年10月6日18:30-19:10

学习产出:

/*
数组
	数组的概念
	一维数组
		一维数组的定义与初始化
			定义方式
				类型说明符 数组名[常量表达式]
		一维数组的引用
			引用方式
				数组名[下标]
		一维数组的常见操作
			数组的遍历
			数值的最值
			数组的排序
				选择排序法
					选择排序在每一趟过程中从待排序记录中选择出最大(小)的元素,依次放在数组的最前或最后端,来实现数组的排序
				冒泡排序法
					在冒泡排序的过程中,不断地比较数组中相邻的两个元素,较小者向上浮,较大者向下沉,整个过程和水中汽水上升的原理相似
				插入排序法
					每一步将一个待排序元素插入到已经排序的元素中的适当位置,知道全部插入完毕
				二分查找法
					对于一个有序排列的数组,如果查找某一个元素,我们通常用二分法查找法,又称为折半查找
	二维数组
		二维数组的定义与初始化
			语法格式
				类型说明符 数组名[常量表达式1][常量表达式2]
			初始化二维数组的方式
				按行给二维数组赋值
				将所有的数组元素按行顺序写在一个大括号内
				对部分数组元素赋初值
				对全部数组元素赋初值
		二维数组的引用
			语法格式
				数组名[下标][下标]
		二维数组的应用
		扩展内容:多维数组
			语法格式
				数组类型修饰符 数组名[n1][n2][n3]....
	数组作为函数参数
		在程序中,为了方便对数组的操作,经常会定义一些操作数组的功能函数,这些函数往往会将数组作为函数参数
	进阶案例-斐波那契数列
	进阶案例-打印杨辉三角形
*/
//相关练习
/*
1、给你一个数组int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 } 
请你(1)正序输出(2)逆序输出。
*/
int main()
{
	int a[]={1,2,3,4,5,6,7,8,9};
	int i=0;
	printf("正序输出为"); 
	for (i=0;i<=8;i++)
	{
		printf(" %d",a[i]);
	}
	printf("\n逆序输出为");
	for (i=8;i>=0;i--)
	{
		printf(" %d",a[i]);
	}
	return 0;
}
/*
2、从键盘上读入10个整数,存入整型数组a中,然后逆序输出这10个整数。
*/
{
    int i=0;
	int a[10];
	printf("请输入10个整数\n"); 
	for (i=0;i<10;i++)
	{
        printf("a[%d]=",i);
		scanf("%d",&a[i]);
	}
	printf("\n逆序输出为");
	for (i=9;i>0;i--)
	{
		printf(" x[%d]:%d",i,a[i]);
	}
	return 0;
}
/*
3、定义一个整型数组int a[]={11,12,53,65,88,91,32};,编写程序找出数组中的最大和最小的数。
*/
#include<stdio.h>
int main()
{
	int a[]={11,12,53,65,88,91,32};
	int i,max=a[0],min=a[0];
	for(i=1;i<7;i++)
	{
		if(a[i]>max)max=a[i];
		if(a[i]<min)min=a[i];
	}
	printf("最大值是%d,最小值为%d\n",max,min);
	return 0;
}
/*
4、编写程序,检查输入的数中是否有重复出现的数字。
*/
#include<stdio.h>
int main()
{
	int a[10]={0};
	int i,m,flag=0;
	printf("请输入一个整数:");
	scanf("%d",&m);
	do{
		a[m%10]++;
		m=m/10;
	}while(m);
	for(i=0;i<=9;i++){
		if(a[i]>1){
			flag=1;break;
		}
	}
	if(flag==1)printf("有重复的数字"); 
	else printf("没有重复的数字"); 
	return 0;
}
/*
进阶案例-斐波那契数列
*/
#include<stdio.h>
int main()
{
	int a[20];
	int i,n,k=0;
	for(i=2;i<20;i++){
		a[0]=1;
		a[1]=1;
		a[i]=a[i-1]+a[i-2];
	}
	for(i=0;i<20;i++,k++){
		if(i<10)printf("a[%d]=%-9d",i,a[i]);
		else printf("a[%d]=%-8d",i,a[i]);
		if((i+1)%5==0)printf("\n");
	}
	return 0;
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值