C语言一维数组的知识,写给新手 一维数组所有知识总结

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

写给新手 一维数组所有知识总结

2010-10-20

一:一维数组取值,输出打印a[10]={23,56,78,12,34,90,46,22,14,79};

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

for(int i=0;i<10;i++){

printf("%d ",a[i]);

}

printf("\n");

}

A[2] [3]

思路:【1:必须用下标号来访问数组中的元素值,并且每一个下标号对应唯一的元素值;

2:循环用下标号来访问数组中的每一个元素值,叫做循环遍历】

二:一维数组逆序,将数组a[10]={23,56,78,12,34,90,46,22,14,79}中的元素逆序排列!

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

for(int i=9;i>=0;i--){

printf("%d ",a[i]);

}

printf("\n");

}

思路【1:下标号对应唯一的元素值,当下标号变换顺序的时候,下标号所对应的元素值也会发生顺序变化。】

三:对一维数组求最值,a[10]={23,56,78,12,34,90,46,22,14,79}

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

int max=a[0];

for(int i=0;i<10;i++){

if(maxa[i]

max=a[i];

}

printf("最大值是:%d",max);

printf("\n");

}

思路【1:保存最大值,必须申请一个变量,并且赋一个临时的值(该值必须是一维数组里面的任何一个元素值,因为是对当前一维数组查找最值);

2:用临时的最大值和一维数组的每一个元素值遍历比较,必须用循环语句。】

四:一维数组求和和平均值,a[10]={23,56,78,12,34,90,46,22,14,79}

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

int s=0;

for(int i=0;i<10;i++){

s=s+a[i];

}

printf("一维数组之和是:%d\n",s);

printf("一维数组平均数:%d\n",s/10);

printf("\n");

}

思路:【1:保存累加之和这个值,需要申请变量并且赋初始值为0,(如果不为0的话,得到系统默认值很小不符合要求!);

2:求累加之和的固定模式是:int s=0;s=s+(变化的值)】

五:一维数组排序

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

for(int i=0;i<9;i++){

for(int j=0;j<9-i;j++){

if(a[j]>a[j+1]){//从大到小排序是:a[j]

int t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

for(int m=0;m<10;m++)

printf("%d ",a[m]);

printf("\n");

}

思路:【1:必须用到循环语句,第一个遍历一维数组的所有元素,次数是(最大长度-1),第二个循环语句是遍历当前这个数和后面的所有数字比较的趟数,越往后,越有循序,比较的趟数越少。

2:必须用到置换语句,按照循序进行前后相邻置换

3:if(a[j]>a[j+1])  有口诀:(大小小大),如果if语句里面的关系运算符号是“>”,就是从小到大排序,反则以此类推!】

六:一维数组从中间倒序排列;例如:1 3 5 8 9   排列为:9 8 5 3 1

#include

void main(){

int a[10]={23,56,78,12,34,90,46,22,14,79};

for(int i=0,j=9;i<10;i++,j--){

if(i

int t=a[i];

a[i]=a[j];

a[j]=t;

}

}

for(int m=0;m<10;m++)

printf("%d ",a[m]);

printf("\n");

}

思路:【1:申请两个循环变量,一个从最小递增,一个从最大递减,每一次都在互换值,到中间就结束。】

七:一维数组遍历查询位置,查找数组中是否有 等于46的数,有的话找出位置!

#include

void main(){

int b=46;

int index;

int a[10]={23,56,78,12,34,90,46,22,14,79};

for(int i=0;i<10;i++){

printf("%d ",a[i]);

if(b==a[i])

index=i;

}

printf("\n");

printf("找到了该数,位置在第:%d 号\n",(index+1));

}

思路:【1:那当前的这个值和一维数组的每一个元素值一一比对,并把当前的下标号打印输出即可!】

八:有序查询,比如已经有10个有序的数字,再插一个,能按照顺序自动插入位置,并输出结果。

#include "stdio.h"

main()

{

int i,j,x,t,k,a[11]={11,23,34,36,49,52,74,87,93,99};

printf("请输入一个数字:");

scanf("%d",&x);

for(i=0;i<10;i++)

printf("%d ",a[i]);

printf("\n");

for(i=0;i<10;i++)

if(a[i]>x)

break;

t=i;

for(j=9;j>=t;j--)

a[j+1]=a[j];

a[t]=x;

for(k=0;k<=10;k++)

printf("%d ",a[k]);

printf("\n");

}

思路:【1:先申请一个新的数组,空间多一个,默认值为0,以备存放后来插入的值

2:遍历查询插入的值存放的下标号

3:将原先的数组的元素从要插入的下标号开始赋值,新数组的下标号多一位,也就是往后移动一位】

搜索更多相关主题的帖子:

知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值