用指针法引用数组元素,刚学很混乱
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数: 输入10个数; 进行处理; 输出10个数。(本题要求写到实验报告上)#include <stdio.h>
#define N 10
void main( )
{
void input(int number[],int n);
void max_min_value(int array[],int n);
void output(int array[],int n);
int number[N];
input(number,N);
max_min_value(number,N);
output(number,N);
}
void input(int number[],int n) /*此函数向首地址为number的数组输入10个元素*/
{添加代码,完善此函数,要求用下标法引用数组元素}
void max_min_value(int array[],int n) /*此函数交换array数组的对应元素*/
{添加代码,完善此函数,要求用指针法记录最大最小元素的位置}
void output(int array[],int n) /*此函数输出array数组的10个元素*/
{添加代码,完善此函数,要求用指针法引用数组元素}
运行结果:
Input 10 numbers:32 24 56 78 1 98 36 44 29 6↙
Now,they are:1 24 56 78 32 6 36 44 29 98
下面是我没写完的,
#include <stdio.h>
#define N 10
void main( )
{
void input(int number[],int n);
void max_min_value(int array[],int n);
void output(int array[],int n);
int number[N];
input(number,N);
max_min_value(number,N);
output(number,N);
}
void input(int number[],int n) /*此函数向首地址为number的数组输入10个元素*/
{printf("please input ten numbers:");
for(n=0;n<10;n++)
scanf("%d",&number[n]);}
void max_min_value(int array[],int n) /*此函数交换array数组的对应元素*/
{int *p1,*p2,*p3,*p4,*p5,*p6;int max,min;
p3=&array[9];
p4=&array[0];
max=array[0];
for(n=0;n<10;n++)
{if(array[n]>max) max=array[n];}
p1=&max;p5=p1;p1=p3;p3=p5;
min=array[0];
for(n=0;n<10;n++)
if(array[n]<min) min=array[n];
p2=&min;p6=p2;p2=p4;p4=p6;
}
void output(int array[],int n) /*此函数输出array数组的10个元素*/
{int i;int(*p)[10];
printf("Now,they are:");
for(i=0;i<10;i++)
printf("%d",*(p+i));
}