(C语言)数组与指针的使用
1
#include <stdio.h>
2
#define SIZE 5
3
void CopybyArray(double ar[],double target[],int);
4
void CopybyPoint(double *ar,double *target,int);
5
void DisplayNum(double *array,int);
6
double MaxNum(double *array,int);
7
int main(void)
8

{
9
double source[SIZE]=
{1.2,3.2,4.5,6.3,8.2};
10
double target1[SIZE],target2[SIZE];
11
double max;
12
printf("The numbers in source:");
13
DisplayNum(source,SIZE);
14
CopybyArray(source,target1,SIZE);
15
CopybyPoint(source,target2,SIZE);
16
printf("\nAfter copy the numbers:");
17
printf("\ntarget1:");
18
DisplayNum(target1,SIZE);
19
printf("\ntarget2:");
20
DisplayNum(target2,SIZE);
21
22
max=MaxNum(source,SIZE);
23
printf("max is %f.",max);
24
//two
25
double source2[3][4]=
{
26
{2,5,8.9,3.6},
27
{4.5,6.3,12,36},
28
{5.5,8.1,9,98}
29
};
30
double target3[3][4];
31
printf("\nbefore copy,source2:\n");
32
for(int n=0;n<3;n++)
33
{
34
DisplayNum(source2[n],4);
35
printf("\n");
36
}
37
for(int i=0;i<3;i++)
38
CopybyPoint(source2[i],target3[i],4);
39
printf("\ntarget3:\n");
40
for(int m=0;m<3;m++)
41
{
42
DisplayNum(target3[m],4);
43
printf("\n");
44
}
45
//choice
46
double source3[7]=
{2.3,5.6,8,9,5.8,89,12};
47
double target4[3];
48
printf("\nsource3:\n");
49
DisplayNum(source3,7);
50
CopybyPoint(&source3[2],target4,3);
51
printf("\ntarget4:");
52
DisplayNum(target4,3);
53
return 0;
54
}
55
void CopybyArray(double ar[],double target[],int size)
56

{
57
for(int i=0;i<size;i++)
58
target[i]=ar[i];
59
return ;
60
}
61
void CopybyPoint(double * ar,double * target,int size)
62

{
63
for(int i=0;i<size;i++)
64
{
65
*target=*ar++;
66
target++;
67
}
68
return ;
69
}
70
void DisplayNum(double *array,int size)
71

{
72
for(int i=0;i<size;i++)
73
printf("%f\t",*array++);
74
}
75
double MaxNum(double *array,int size)
76

{
77
double max;
78
max=0.0;
79
int p;
80
for(int i=0;i<size;i++)
81
{
82
if(*array>=max)
83
{
84
max=*array++;
85
p=i;
86
}
87
}
88
printf("number %d\n",p);
89
return max;
90
}
91
#include <stdio.h>2
#define SIZE 53
void CopybyArray(double ar[],double target[],int);4
void CopybyPoint(double *ar,double *target,int);5
void DisplayNum(double *array,int);6
double MaxNum(double *array,int);7
int main(void)8


{9

double source[SIZE]=
{1.2,3.2,4.5,6.3,8.2};10
double target1[SIZE],target2[SIZE];11
double max;12
printf("The numbers in source:");13
DisplayNum(source,SIZE);14
CopybyArray(source,target1,SIZE);15
CopybyPoint(source,target2,SIZE);16
printf("\nAfter copy the numbers:");17
printf("\ntarget1:");18
DisplayNum(target1,SIZE);19
printf("\ntarget2:");20
DisplayNum(target2,SIZE);21

22
max=MaxNum(source,SIZE);23
printf("max is %f.",max);24
//two25

double source2[3][4]=
{26

{2,5,8.9,3.6},27

{4.5,6.3,12,36},28

{5.5,8.1,9,98}29
};30
double target3[3][4];31
printf("\nbefore copy,source2:\n");32
for(int n=0;n<3;n++)33

{34
DisplayNum(source2[n],4);35
printf("\n");36
}37
for(int i=0;i<3;i++)38
CopybyPoint(source2[i],target3[i],4);39
printf("\ntarget3:\n");40
for(int m=0;m<3;m++)41

{42
DisplayNum(target3[m],4);43
printf("\n");44
}45
//choice46

double source3[7]=
{2.3,5.6,8,9,5.8,89,12};47
double target4[3];48
printf("\nsource3:\n");49
DisplayNum(source3,7);50
CopybyPoint(&source3[2],target4,3);51
printf("\ntarget4:");52
DisplayNum(target4,3);53
return 0;54
}55
void CopybyArray(double ar[],double target[],int size)56


{57
for(int i=0;i<size;i++)58
target[i]=ar[i];59
return ;60
}61
void CopybyPoint(double * ar,double * target,int size)62


{63
for(int i=0;i<size;i++)64

{65
*target=*ar++;66
target++;67
}68
return ;69
}70
void DisplayNum(double *array,int size)71


{72
for(int i=0;i<size;i++)73
printf("%f\t",*array++);74
}75
double MaxNum(double *array,int size)76


{77
double max;78
max=0.0;79
int p;80
for(int i=0;i<size;i++)81

{82
if(*array>=max)83

{84
max=*array++;85
p=i;86
}87
}88
printf("number %d\n",p);89
return max;90
}91

