1.1、一维数组 1、定义 2、引用 下标:整型表达式 例如: 数组元素的使用方法与同类型的变量相同,例如: 3、区分数组的定义和数组元素的引用 (2)、引用数组元素 4、数组和循环:使用循环批量处理数组元素。数组下标作为循环变量,通过循环,逐个处理数组元素。 例1.1:逆序输出 1.1.2、一维数组初始化 (2)、部分元素初始化:一般数组如果没有初始化,所有元素为随机值;但如果对部分元素初始化,没有初始值的元素自动赋值为0 如果对全部元素赋值可以省略数组的长度 例1.2:fibonacci数列的前n项:输入一个正整数n(1<n<=50),输出fibonacci数列的前n项:1,1,2,3,5… 例1.3、数组元素的查找:已知数组a中有如下元素:1,45,18,7,22,11,33,15,27,19;输入一个x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出”Not Found” 例1.4:在有序序列里面插入新元素:已知如下有序序列,有9个元素:1,2,4,7,8,11,16,21,35  输入一个数,该数插入到数组的适当位置,是的数组仍保持升序序列,输出插入新元素之后的数组。 例1.5:交换最小值:输入n,再输入n个数 (1)、求最小值 (2)、求最小值及其所对应的下标 (3)、将最小值与第一个数交换,输出交换后的n个数 例1.6:排序:输入n(n<10),再输入n个数,将它们从小到大的顺序输出。
超详细且附实例的一维数组(C语言)
数组:方便数据的管理和使用,便于完成大量的数据的处理,简化程序设计
1、一维数组
 1.1.1、一维数组的定义和引用
 一批相同类型的变量使用同一个数组变量名,用下标来相互区分。
 
// i 从0到9,输出a[0]~a[9] for(i = 0;i < n;i++) printf("%d",a[i]); 
 类型名 数组名[数组长度]
 类型名:数组元素的类型
 数组名:数组(变量)的名称,标识符
 数组长度:常量表达式,给定数组的大小int a[10];//定义一个含有10个整型元素的数组a char c[200];//定义一个含有200个字符元素的数组C double arr[5];//定义一个含有5个实型的数组arr 
 (1)、先定义,后使用
 (2)、只能引用单个的==数组元素,不能一次引用整个数组
 取值范围:[0,数组长度-1]int a[10];10个元素:a[0],a[1]...a[9] //下标不能越界,不能使用a[10] //从键盘读入一个整数,存入a[i] scanf("%d",&a[i]); //下标为index的元素与下标为k的元素互换内容 temp = a[index]; a[index] = a[k]; a[k] = temp; //输出a[i]的值 printf("%dn",a[i]); 
 (1)、定义数组类型名 数组名[数组长度] int a[10];//定义数组时,数组长度必须为常量 数组名[下标] a[0] = a[9] = 0; a[k] = temp; // i 从0到9,输出a[0]~a[9] for(i = 0;i < 10;i++) printf("%d",a[i]); // i 从0到9,输出a[0]~a[9] for(i = 0;i < 10;i++) printf("%d",a[i]); 
 n个整数的逆序输出。输入n(n <=10)和n个整数,逆序输出这n个整数。思路分析: (1)、读入n; (2)、循环进行n次,依次将n个整数存入a[0],a[1]...a[n -1]; (3)、循环进行n次,依次输出a[n-1]...a[1],a[0]; #include<stdio.h> int main(void) { int n; int a[9]; printf("请输入整数的个数:n"); scanf("%d",&n); printf("请输入%d个整数:n",n);//依次将n个整数存入a[0],a[1]...a[n -1]; for(int i = 0;i < n;i++) scanf("%d",&a[i]); printf("请逆序输出这几个数:n");//依次输出a[n-1]...a[1],a[0]; for(int i = n-1;i >= 0;i--) printf("%d ",a[i]); printf("n"); return 0; } 
 (1)、可以定义数组时,对数组元素赋初值。
 类型名 数组名[数组长度] = {初值表}
 例如:int a[10] = {1,2,3,4,5,6,7,8,9,10}; //定义数组a有10个int类型的元素,并为这些元素赋初值; a[0]=1;...a[9]=10 int fib[20]= {0,1}; fib[0]=0; fib[1]=1;//其余的元素都为0 int a[10]={0,1,2,3,4,5,6,7,8,9}; 可写成:int a[]={0,1,2,3,4,5,6,7,8,9};//建议不要省略数组的长度 思路分析: (1)、先输入整数的个数;      scanf("%d",&n);       (2)、使用一个循环完成计算数组的后一项;      for(int i = 2;i <=n;i++) {           a[i] = a[i-1] + a[i-2]; }       (3)、使用循环输出数组元素;      for(int i = 0;i < n;i++) { printf("%dn",a[i]); } #include<stdio.h> #define N 50 int main(void) { int n; int a[N]={1,1}; printf("请输入整数的个数:n"); scanf("%d",&n); for(int i = 2;i <=n;i++) {           a[i] = a[i-1] + a[i-2]; } printf("请输出这个数列的前n项:n"); for(int i = 0;i < n;i++) { printf("%dn",a[i]); } return 0; } 思路分析: (1)、对n个数依次循环进行查找; for() { if(a[i]==x) }  (2)、if(i < n)则找到,否则没有找到。 #include<stdio.h> #define N 10 int main() { int i,x; int a[N]={1,45,18,7,22,11,33,15,27,19}; printf("请输入要查找的数字:n"); scanf("%d",&x); for(i=0;i<N;i++) { if(a[i]==x)//若找到,提前循环 break; } if(i<N)//若循环提前结束,说明找到x,输出下标; printf("%dn",i); else printf("Not Found"); return 0; } 思路分析: (1)、从后往前开始遍历,遇到比自己大的元素就往后移一位; for(i = N-1;i >= 0;i--) { if(a[i] > n)    a[i+1] = a[i]; else break; }  (2)、将插入的元素赋值给a[i+1]; a[i+1] = n; #include<stdio.h> #define N 20 int main() { int n,i; int a[N]={1,2,4,7,8,11,16,21,35}; printf("请输入要插入的整数:n"); scanf("%d",&n); for( i = N-1;i >= 0;i--) //从后往前遍历,遇到大的往后移一位 { if(a[i]>n)              a[i+1]=a[i]; else break; }      a[i+1]=n; //将插入的元素赋给a[i+1] printf("插入后按升序输出 :n"); for(i = 0;i <=N;i++) printf("%d ",a[i]); printf("n"); return 0; } 
 (1)、求最小值
 (2)、求最小值及其所对应的下标
 (3)、将最小值与第一个数交换,输出交换后的n个数思路分析: a[0]为临时最小值   min = a[0]; for(i = 0;i < n;i++) { if(a[i] < a[0])           min = a[i]; } #include<stdio.h> #define N 20 int main() { int n,i; int min; int a[N]; printf("请输入整数的个数:n"); scanf("%d",&n); //输入整数的个数 printf("请分别输入这几个整数 :n"); for(i = 0;i < n;i++) scanf("%d",&a[i]); //输入的元素依次存入数组            min = a[0]; //a[0]为临时最小值 for(i = 0;i < n;i++) { if(a[i] < min)           min = a[i]; } printf("最小值为:n"); printf("%dn",min); return 0; } #include<stdio.h> #define N 20 int main() { int n,i; int index; //记录下标 int min; int a[N]; printf("请输入整数的个数:n"); scanf("%d",&n); //输入整数的个数 printf("请分别输入这几个整数 :n"); for(i = 0;i < n;i++) scanf("%d",&a[i]); //输入的元素依次存入数组            min = a[0]; //a[0]为临时最小值 for(i = 0;i < n;i++) { if(a[i] < min)           min = a[i];           index = i; //下标赋为i } printf("最小值为:n"); printf("%dn",min); printf("最小值的下标为:n"); printf("%dn",index); return 0; } 思路分析: 交换的操作:           t = a[0];                a[0] = min;           min = t; #include<stdio.h> #define N 20 int main() { int n,i; int t; int min; int a[N]; printf("请输入整数的个数:n"); scanf("%d",&n); //输入整数的个数 printf("请分别输入这几个整数 :n"); for(i = 0;i < n;i++) scanf("%d",&a[i]); //输入的元素依次存入数组 for(i = 0;i < n;i++) {           min = a[0]; //初始化在for循环内 if(a[i] < min)                min = a[i]; }            t = a[0]; //进行交换操作           a[0] = min;           min = t; printf("最小值与第一个数交换后输出n个数:n"); for(i = 0;i < n;i++) printf("%dn",a[i]); return 0; } 思路分析: 比较交换排序的实现:     for(i = 0;i < n -1;i++) //交换排序 {//a[i]与其后元素比较,若a[j]<a[i].则交换 for(j = i+1;j < n;j++) if(a[i] >a[j]) {                  index = a[i];                  a[i] = a[j];                  a[j] = index; } } #include<stdio.h> #define N 20 int main() { int n,i,j; int index; int min; int a[N]; printf("请输入整数的个数:n"); scanf("%d",&n); //输入整数的个数 printf("请分别输入这几个整数 :n"); for(i = 0;i < n;i++) scanf("%d",&a[i]); //输入的元素依次存入数组 for(i = 0;i < n -1;i++) //交换排序 {//a[i]与其后元素比较,若a[j]<a[i].则交换 for(j = i+1;j < n;j++) if(a[i] >a[j]) {                  index = a[i];                  a[i] = a[j];                  a[j] = index; } } printf("排序后输出n个数:n"); for(i = 0;i < n;i++) printf("%dn",a[i]); return 0; } 
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)