按工龄从大到小排序,输出结果不对,不知道哪错了

img

 #include<stdio.h>

struct teater {
    int num ;
    char name [10] ;
    int age;
}; 

int main(void){

    int index,i,j,n;
    struct teater teater[50],temp;
    scanf("%d",&n);
    
    for(i=0;i<n;i++){
        scanf("%d%s%d",&teater[i].num ,&teater[i].name ,&teater[i].age);
    }
    
    for(i=0;i<n-1;i++){
         for(j=i+1;j<n;j++){    //修改的这里,重点看一下
            if(teater[i].age < teater[j].age)
                    temp=teater[i];
                    teater[i]=teater[j];
                    teater[j]=temp;
        }
    }
    for(i=0;i<n;i++){
    printf("%d\t%s\t%d\n" ,teater[i].num ,teater[i].name ,teater[i].age);
    }
    return 0;
}

这是运行截图,应该符合你的需求,望采纳,谢谢

img

冒泡排序


for (int i = 0; i < n - 1; i++)
    {
        for(int j=0;j<n-i-1;j++)
            temp()
    }
 #include<stdio.h>

struct teater {
    int num ;
    char name [10] ;
    int age;
}; 

int main(void){

    int index,i,j,n;
    struct teater teater[50],temp;
    scanf("%d",&n);
    
    for(i=0;i<n;i++){
        scanf("%d%s%d",&teater[i].num ,&teater[i].name ,&teater[i].age);
    }
    
    for(i=0;i<n-1;i++){
         for(j=i+1;j<n;j++){    //修改的这里,重点看一下
            if(teater[i].age < teater[j].age)
                    temp=teater[i];
                    teater[i]=teater[j];
                    teater[j]=temp;
        }
    }
    for(i=0;i<n;i++){
    printf("%d\t%s\t%d\n" ,teater[i].num ,teater[i].name ,teater[i].age);
    }
    return 0;
}

这是运行截图,应该符合你的需求,望采纳,谢谢

img