社区讨论

求助,样例过了,但全WA

P5266【深基17.例6】学籍管理参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo853u5l
此快照首次捕获于
2023/10/27 12:55
2 年前
此快照最后确认于
2023/10/27 12:55
2 年前
查看原帖
C
#include<stdio.h>
#include<string.h>
typedef struct{
    char name[25];
    int score;
}Student;

void swap(Student*a,Student*b){
    char temp[25];
    strcpy(temp,a->name);
    strcpy(a->name,b->name);
    strcpy(b->name,temp);
    int score=a->score;
    a->score=b->score;
    b->score=score;
}

Student stu[100010];
int size=0;

int find_tip(const char str[]){
    for(int i=0;i<size;i++){
        if(strcmp(str,stu[i].name)==0){
            return i;
        }
    }
    return size;
}

int main(){
    int n;
    scanf("%d",&n);
    int x;
    for(int i=0;i<n;i++){
        scanf("%d",&x);
        if(x==1){
            char _name[25];
            scanf("%s",_name);
            int _score;
            scanf("%d",&_score);
            int tip=find_tip(_name);
            if(tip>=size){
                //stu[size].name=_name;
                strcpy(stu[size].name,_name);
                stu[size].score=_score;
                size++;
            }
            else{
                stu[tip].score=_score;
            }
            printf("OK\n");
        }
        else if(x==2){
            char _name[25];
            scanf("%s",_name);
            int tip=find_tip(_name);
            if(tip>=size){
                printf("Not found\n");
            }
            else{
                printf("%d\n",stu[tip].score);
            }
        }
        else if(x==3){
            char _name[25];
            scanf("%s",_name);
            int tip=find_tip(_name);
            if(tip>=size){
                printf("Not found\n");
            }
            else{
                swap(&stu[size],&stu[tip]);
                size--;
                printf("Deleted successfully\n");
            }
        }
        else{
            printf("%d\n",size);
        }
    }
    return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...