(一)增:
#include<stdio.h>
int main(){
int a[11] = {11,22,33,44,55,66,77,88,99,111};
int m,end,temp1,temp2;
int i, j;
printf("please input new number:");
scanf("%d", &m);
end = a[9];
if (m >= end) {
a[10] = m;
}//比较这个数和数组的最后一个数的大小,如果大于最后一个数直接插入数组末尾即可
else {
for (i = 0; i < 10; i++) {
if (a[i] > m)//若数组中元素大于这个数,就插入于此,这位置之后的数都向后移动一个单位
{
temp1 = a[i];//保存第i个位置的数值
a[i] = m;//将新输入的数插入到第i个位置
for (j = i + 1; j < 11; j++) {
temp2 = a[j];
a[j] = temp1;
temp1 = temp2;
}//将i之后的元素向后移动一个单位
break;
}
}
}
printf("The new array is:");
for (i = 0; i < 11; i++) {
printf("%3d", a[i]);
}
return 0;
}
//转载于@程序猿群哥@度小编
(二)删(无序数组删除某个指定元素):
方法一:遍历法
int main()
{
int arr[]={1,2,3,4,5,6,6};
int delect =0;
int i=0,j=0,k=0;
int n;//n为数组长度
n=sizeof(arr)/sizeof(int);
printf("删除前数组为:");
for (k=0;k<=n-1;k++)
{
printf("%4d",arr[k]);
}
printf("/n") ;
printf("please input the number you want to delect");
scanf("%d",&delect);
for (i=0;i<=n-1;i++){
if(delect ==arr[i])
{
for(j=i;j<+n;j++)
{
arr[j]=arr[j+1];//实现数的覆盖
}
}
}
printf("删除后的数组为");
for(k=0;k<=n-2;k++)
{
printf ("%4d",arr[k]);
}
printf("\n");
return 0;
}//转载于@topicstudy
方法二:记录元素下标
#include<stdio.h>
int main()
{
int arr[]={1,3,6,5,4,};//4后面还有一个,的意思是数组是动态长度吗?
int delect=0;
int delectIndex=0;
int i=0;//非循环嵌套,可以只定义一个
int n ;
n=sizeof(arr)/sizeof(int);
printf("Original array:") ;
for (i=0;i<=n-1;i++){
printf("%4d",arr[i]);
}
printf("\n");
printf("please input the number you want to delect:");
scanf("%d",&delect);
for(i=0;i<=n-1;i++){
if(delect==arr[i])
delectIndex=i;//记录要删除的元素的下标
}
for(i= delectIndex;i<=n-2;i++) {
arr[i]=arr[i+1];//后面的元素顺位往前移动
}
printf("The deleted array is:");
for (i=0;i<=n-2;i++)
{
printf("%4d",arr[i]);
}
printf("\n");
return 0;
}
//转载于@topicstudy
以上代码存在bug:如果输入的元素在数组里面不存在,会自动删除a[0].
(三)查找元素是否存在
#include<stdio.h>
void input(int array[10],int n);
int find(int array[10],int n);
int main()
{
int array[10]={0};
int i, n, h;
do
{
printf("please input the whole numbers-n(0<n<10):\n");
scanf("%d",&n);
}while (n<0||n>10);
input (array,n);
h= find(array,n);
}
void input(int array[10],int n)/*函数功能:输入元素*/
{
int i;
printf("请输入%d个数组元素:\n",n);
for (i=0;i<n;i++)
scanf("%d",&array[i]);
}
int find(int array[10],int n)/*函数功能:寻找元素,如果找到,flag变为1,然后输出该元素*/
{
int a,b,i,flag;
flag=-1;
printf("请输入你所寻找的元素:\n");
scanf("%d",&a);
for (i=0;i<n;i++)
if(a==array[i])
flag=i+1;
return flag;
}//转载于@保温杯拖把风扇
(四)改指定位置的元素的数值
#include<stdio.h>
int main(void){
int i;
int num[]={1,2,4};
num[2]= 120;//位置在2,及数组的第3个元素
for(i=0;i<3;i++)
printf("%d ",num[i]);
}