1578 - 学生查询
时间限制 : 1 秒
内存限制 : 32 MB
输入n个学生的信息,每行包括学号、姓名、性别和年龄,每一个属性使用空格分开。最后再输入一学号,将该学号对应的学生信息输出。
题目输入
测试数据有多组,第一行为样例数m。对于每个样例,第一行为学生人数n(n不超过20),加下来n行每行4个整数分别表示学号、姓名、性别和年龄,最后一行表示查询的学号。
题目输出
输出m行,每行表示查询的学生信息,格式参见样例。
输入/输出样例
输入格式
1 4 1 李江 男 21 2 刘唐 男 23 3 张军 男 19 4 王娜 女 19 2
输出格式
2 刘唐 男 23
C语言解答
struct number { int id,age; char name[100],sex[5]; }num[21]; int main(int argc, char* argv[]) {int i,n,m,j; scanf("%d",&n); while(n--) { scanf("%d",&m); for(i=0;i<m;i++) scanf("%d%s%s%d",&num[i].id,&num[i].name,&num[i].sex,&num[i].age); scanf("%d",&j); for(i=0;i<m;i++) if(j==num[i].id){printf("%d %s %s %d\n",num[i].id,num[i].name,num[i].sex,num[i].age);break;} } return 0; }
C++解答
#include <iostream> #include <cstdio> using namespace std; struct Stu { int id, age; char na[100], sex[100]; }; int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int n, t; Stu a[20]; char str[80]; int st_no; scanf("%d", &t); while (t--) { scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d %s %s %d", &a[i].id, &a[i].na, &a[i].sex, &a[i].age); scanf("%d", &st_no); for (int i = 0; i < n; ++i) if (a[i].id == st_no) printf("%d %s %s %d\n", a[i].id, a[i].na, a[i].sex, a[i].age ); } return 0; }
Java解答
import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int m=sc.nextInt(); while(m-->0){ int n=sc.nextInt(); String stop=sc.nextLine(); String s[][]=new String[n][4]; for(int i=0;i<s.length;i++){ StringTokenizer st=new StringTokenizer(sc.nextLine()," "); s[i][0]=st.nextToken(); s[i][1]=st.nextToken(); s[i][2]=st.nextToken(); s[i][3]=st.nextToken(); } String tempStr=sc.next(); for(int i=0;i<s.length;i++){ if(tempStr.equals(s[i][0])){ System.out.println(s[i][0]+" "+s[i][1]+" "+s[i][2]+" "+s[i][3]); break; } } } sc.close(); } }