数组的学习总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的学习总结相关的知识,希望对你有一定的参考价值。
数组用于存储单一数据类型的一组数
数组是有类型属性的:同一数组中的每一个元
素都必须属于同一数据类型。
一个数组在内存中占一片连续的存储单元。
#include<stdio.h>
int days(int y,int m,int d);
in tmain()
{
int year,month,day;
printf("输入年月日:");
scanf("%d %d %d",&year,&month,&day);
printf("这是该年的第%d天\n",days(year,month,day));
return 0;
}
int days(inty,intm,intd)
{
int i,sum=d;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=1;i<m;i++)
sum+=a[i];
if(m>2&&((y%4==0&&y%100!=0)||y%400==0))//若闰年……
sum++;
return 0
#include<stdio.h>
#definen10
int main()
{
int i,j,t,a[n]={123,5,9,11,33,6,9,76,100,3};
for(i=0;i<n-1;i++)
for(j=0;j<=n-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<10;i++)//输出排序后结果
printf("%d",a[i]);
return 0;
}
}
#define SIZE100
int deleteData (int[],int,int);
int main()
{
int n=10;//数组中实际有用元素
int d[SIZE]={1,3,9,12,32,41,45,62,75,77};
int locate,i;
scanf("%d",&locate);
//删除locate处的数据
n=deleteData(d,n,locate);
//输出删除后的结果
for(i=0;i<n;++i)
printf("%d",d[i]);
printf("\n");
return0;
}
功能:删除数组中指定位置上的元素
入口参数:数组名、数组大小、要删除元素的位置
返回值:删除后数组的大小
*/
int insertData(int[],int,int,int);
#define SIZE100
int main()
{
int n=10;//数组中实际有用元素
int d[SIZE]={1,3,9,12,32,41,45,62,75,77};
int locate,value,i;
scanf("%d%d",&locate,&value);
//在locate位置处插入value
n=insertData(d,n,locate,value);
//输出插入后的结果
for(i=0;i<n;++i)
printf("%d",d[i]);
printf("\n");
return0;
}
功能:在长度为len的数组arr的loc位置处插入值v
入口参数:数组名、长度、位置和要插入的值
返回值:插入数据后的长度
*/
合并两个有序数组
#include<stdio.h>
int mergeData(int[],int,int[],int,int[]);
#defineSIZE100
int main()
{
int n1=10,n2=7,n3=0;//数组中实际有用元素
in td1[SIZE]={1,3,9,12,32,41,45,62,75,77};
in td2[SIZE]={2,11,24,56,76,82,94};
int d3[SIZE*2];
int i;
//合并有序数组
n3=mergeData(d1,n1,d2,n2,d3);
//输出合并后的结果
for(i=0;i<n3;++i)
printf("%d",d3[i]);
printf("\n");
return0;
}
/*
功能:将长度为l1的有序数组a1和长度为l2的有序数组
a2,合并为新的有序数组a3
入口参数:待合并的有序数组名及长度,及合并后保存数
据的数组名
返回值:合并后的有序数组长度
*/
/*功能:在长度为n的有序数组中查找k出现的位置*/
int binary_search(intarr[],intn,intk);
#define SIZE10
int main()
{
int d[SIZE]={1,3,9,12,32,41,45,62,75,77};
int key,index;
printf("Inputakeyyouwanttosearch:");
scanf("%d",&key);
index=binary_search(d,SIZE,key);
if(index>=0)
printf("Theindexis%d.\n",index);
else
printf("Notfound.\n");
return0;
}
{
int i=-1;
int low=0,high=n-1,mid;
while(low<=high)
{
mid=(low+high)/2;
if(arr[mid]==k)
{
i=mid;
break;
}
else if(arr[mid]>k)
high=mid-1;
else
low=mid+1;
}
return i;
}
#include<stdio.h>
void select_sort(int array[],int n);
int main()
{
int a[10]={4,3,7,9,1,5,0,8,2,6},i;
select_sort(a,10);
printf("the sorted array:\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
void select_sort(int array[],int n);
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
return;
}
以上是关于数组的学习总结的主要内容,如果未能解决你的问题,请参考以下文章