关于#c语言#的问题:有以下程序#include <stdio.h> 我想问if后面是怎么运算的

有以下程序

#include<stdio.h>

struct STU

{

char name[10];

int num;

int Score;

};

int main ( )

{

struct STU   s[5] = { { "LiLi", 201123, 701 } , { "QianYing", 201150, 595 } ,

    { "wangYin", 20043, 680 } , { "WangWei", 201104, 620 } ,

    { "GaoXiang", 201119, 611 }

}, *p[5], *t;

int i, j;

for ( i = 0; i<5; i++ )    p[i] = &s[i];

for ( i = 0; i<4; i++ )

    for ( j = i+1; j<5; j++ )

        if  ( p[i]->Score>p[j]->Score )

        {

            t = p[i];

            p[i] = p[j];

            p[j] = t;

        }

printf ( "%d  %d\n", s[1].Score, p[1]->Score ) ;

return 0;

}

if()语句括号内条件满足就执行{}里的内容

比如

#include <stdio.h>
int main(void){
    int a = 1;
    if(a == 1){
           printf("a=1");
     }
      return 0;
}

程序运行结果:a=1

你这个是通过for循环和if比较STU结构中的score大小

见注释,供参考:

#include<stdio.h>
struct STU
{
    char name[10];
    int num;
    int Score;
};

int main ( )
{
    struct STU   s[5] = {{ "LiLi", 201123, 701 } , { "QianYing", 201150, 595 } ,
                         { "wangYin", 20043, 680 } , { "WangWei", 201104, 620 },
                         { "GaoXiang", 201119, 611 }}, *p[5], *t;
    int i, j;
    for ( i = 0; i<5; i++ )    p[i] = &s[i];//指针数组 p[i] 指向数组 s[i]的一条记录
    for ( i = 0; i<4; i++ )
        for ( j = i+1; j<5; j++ )
            if  ( p[i]->Score>p[j]->Score )//将指针数组指向的记录按成绩升序排序
            {
                t = p[i];       //交换指针数组的指针
                p[i] = p[j];
                p[j] = t;
            }
    printf ( "%d  %d\n", s[1].Score, p[1]->Score ) ;//经过对指针数组的操作,p[1]不再指向了 s[1]
    return 0;
}