北邮 oj104912星球的研究生

    xiaoxiao2021-03-25  57

    104. 912星球的研究生

    时间限制 1000 ms  内存限制 65536 KB

    题目描述

    最近912星球的研究生入学了,912星球的教务处因此忙的焦头烂额,要求yzr做一个信息管理系统登陆查询研究生的考试成绩。但是yzr太弱了,你能帮帮忙么? 912星球的每一位研究生都有一个名字id和一份星球考研成绩,可喜的是都是自然数。 信息管理系统需要完成两个命令: 1.“Insert空格id_number空格score_number”命令,表示登陆一个名字id为id_number,分数为score_number的同学的信息。其中id和score都是自然数,分别代表一位研究生的id和成绩(中间有一个空格)。 2.“Find id_number”命令,表示查询一个名字id为id_number的研究生的成绩,需要输出对应的成绩

    输入格式

    首先输入一个整数 T ,表示一共有 T 组数据 (0< T 10) 每组数据的第一行包括一个数字 n ,表示这组数据一共 n 行,并且保证最多只有 n 位研究生, 0< n 100 。 接下来每一行都有一条命令,形式如上所述。 不会有两名拥有同样名字id的同学,并且保证名字id是自然数且小于等于1000,得分为自然数且小于等于10000

    输出格式

    对于每一组数据中的每一条命令:

           Insert命令无需任何对应输出

           Find命令需要输出一行,形如“name:name_id空格score:score_number”,表示找到一个名字id为id_number,分数为score_number的同学的信息。如果没有找到输出“No result!”。

    每个输出占一行,每组数据之间不用留空行

    输入样例

    2 2 Insert 0 10 Find 0 5 Insert 1 1 Find 2 Insert 2 2 Find 2 Find 1

    输出样例

    name:0 score:10 No result! name:2 score:2 name:1 score:1 解题思路: 这个题很简单,只需要定义一个结构体数组来存储学生的Id和Score。关键是一些变量初始化应放在哪里。 C++代码: #include<iostream> #include<stdio.h> #include<stdlib.h> #include<algorithm> #include<ctype.h> #include<string.h> using namespace std; typedef struct Student {     int name_id; int score; }Student; int main() { int T,n,k,find,flag; char temp[30]; scanf("%d",&T); while(T--) {    k=0;         scanf("%d",&n); Student s[100]; for(int i=0;i<n;i++) { flag=0;     scanf("%s",temp); if(!strcmp(temp,"Insert")) {  scanf("%d %d",&s[k].name_id,&s[k].score);  k++; } else if(!strcmp(temp,"Find")) { scanf("%d",&find);     for(int j=0;j<k;j++) { if(find==s[j].name_id) { printf("name:%d score:%d\n",s[j].name_id,s[j].score); flag=1; break; } } if(flag==0) printf("No result!\n");    } } }     return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-38421.html

    最新回复(0)