学习调用void函数,编写一个多功能的处理数组元素的代码。
#include <stdio.h>
#include <math.h>
//返回指定大小中数值最大的数组元素
void Max(int array[],int size)
{
int max=array[0];
for(int i=1;i<size;i++)
if(array[i]>max)
max=array[i];
printf("The max is %d\n",max);
}
//每个数加上一个数
void addnumber(int array[],int number) {
int i;
for (i = 0; i <6; i++) {
array[i]+=number;
}
}
//指定下标的减去一个数
void subnumber(int array[],int n,int number)
{
array[n]-=number;
}
//平方数组元素
void square(int array[],int size)
{
for(int i=0;i<size;i++)
array[i]=pow(array[i],2);
}
//按值删除一个数组元素
void delete_elem(int array[],int size,int x)
{
int flag=0,i;
for(i=0;i<size;i++)
if(array[i]==x){
flag=1;
break;}
if(flag==1)
{
for(int k=i;k<size;k++)
array[k]=array[k+1];
}
else
printf("not found\n");
}
//按位删除一个数组元素
void delete_pos(int array[],int size,int pos)
{
if(pos>=0&&pos<size){
for(int i=pos;i<size;i++)
array[i]=array[i+1];
}
else
printf("ERROR\n");
}
//按序插入一个数组元素
void insert_elem(int array[],int elem,int size) {
int i, temp;
for (i = 0; i < size; i++) {
if (array[i] > elem) {
temp = array[i];
array[i] = elem;
for (int j = i + 1; j < size; j++) {
int temp1 = array[j];
array[j] = temp;
temp = temp1;
}
break;
}
}
}
//显示所有数组元素
void display(int array[])
{
for(int i=0;i<6;i++)
printf("a[%d]=%2d ",i,array[i]);
printf("\n");
}
//主函数
int main(){
int a[]={1,3,5,7,9,11};
Max(a,4);
addnumber(a,2);//给数组中所有的数都加上一个数。
display(a);
subnumber(a,0,2);//指定下标的数组减去一个数。
display(a);
delete_pos(a,6,1);//删除下标为1的数组元素。
display(a);
insert_elem(a,6,6);//按序插入数字6。
display(a);
delete_elem(a,6,6);//删除数值为6的数组元素。
display(a);
square(a,3);//平方指定前3个数组的值。
display(a);
}
【结果】
The max is 7
//前4个数组元素最大值为7
a[0]= 3 a[1]= 5 a[2]= 7 a[3]= 9 a[4]=11 a[5]=13
//所有数组元素值加2
a[0]= 1 a[1]= 5 a[2]= 7 a[3]= 9 a[4]=11 a[5]=13
//下标为0的数组元素值减2
a[0]= 1 a[1]= 7 a[2]= 9 a[3]=11 a[4]=13 a[5]= 0
//删除下标为1的数组元素
a[0]= 1 a[1]= 6 a[2]= 7 a[3]= 9 a[4]=11 a[5]=13
//插入大小为6的数值
a[0]= 1 a[1]= 7 a[2]= 9 a[3]=11 a[4]=13 a[5]= 0
//删除大小为6的数组元素
a[0]= 1 a[1]=49 a[2]=81 a[3]=11 a[4]=13 a[5]= 0
//前3项的数组平方