当前位置:网站首页>Input and output of C language pointer to two-dimensional array

Input and output of C language pointer to two-dimensional array

2022-07-07 01:54:00 The universe is hidden in the book

C Language use pointer to enter and input grades

// Pointer to array as function parameter 
/* The example title comes from tanhaoqiang C Language programming Fifth Edition 251 page   There is a class , There are three students , Learn four courses each , Calculate the total average score and the total score of a designated student   And can independently judge the grades of students who fail in various subjects  */
#include <stdio.h>
int main()
{
    
    void average(float * p,int n );
    void search(float(*p)[4],int n);
    void score_input(float score[3][4]);
    void pointer_score_input(float * p,int n);
    float score[3][4];
    //score_input(score);// Input of array version 
    pointer_score_input(score,12);// Pointer input 
    average(*score,12);
    search(score,3);
    return 0;

}
// Define the average function 
void average(float * p,int n )
{
    

    float sum=0,aver;
    float * p_end;
    for(p_end=p;p<p_end+n;p++)
        sum=sum+(*p);
    aver=sum/n;
    printf(" The average score is :%f\n",aver);
}
// Define the function of finding grades 
void search(float(*p)[4],int n)  // there (*p)[4] Is pointing to having 4 A pointer to a one-dimensional array 
{
    
    int i,j,m,flag=0;
    //printf(" The students with this grade are %d classmate \n",n);
    for(j=0;j<n;j++)
     {
    for (i=0;i<4;i++)


     if(*(*(p+j)+i)<60)

        flag=1;
        if(flag==1)
        {
    

          printf(" The students who fail are %d, His grades in all subjects are \n",j+1);
          flag=0;
          printf("\n");
    for (m=0;m<4;m++)

         printf(" %f",*(*(p+j)+m));// The front one *(p+n) It refers to the number of students , Back i It refers to the grade of the student's grade 


         }
printf("\n");

          }


    printf("\n");
}
// Score input function 
void score_input(float score[3][4])
{
    
    int i,j;
    printf(" Please enter the student's grade ");
    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
        scanf(" %f",&score[i][j]);
    printf(" Input complete \n");
}
// Pointer version input grade function 
void pointer_score_input(float * p,int n)
{
    
    float *score_pointer;
    score_pointer=p+n;// Send the address to score_pointer The pointer 
    printf(" Please enter the student's grade \n");
    for(;p<score_pointer;p++)// At this time P The address pointed to by the pointer is scored The first address 
        scanf("%f",p);      //  Write data to the specified address 
    printf(" Input completed \n");

}

原网站

版权声明
本文为[The universe is hidden in the book]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202130914473884.html