(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

                    
                


    
                
            
        
浙公网安备 33010602011771号