-
题目描述:
-
输入N个学生的信息,然后进行查询。
-
输入:
-
输入的第一行为N,即学生的个数(N<=1000)
接下来的N行包括N个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:02030104
-
输出:
-
输出M行,每行包括一个对应于查询的学生的信息。
如果没有对应的学生信息,则输出“No Answer!”
-
样例输入:
-
4 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 5 02 03 01 04 03
-
样例输出:
-
02 刘唐 男 23 03 张军 男 19 01 李江 男 21 04 王娜 女 19 03 张军 男 19
<div class="line number51 index50 alt2"><code class="c comments">/**************************************************************</code></div><div class="line number52 index51 alt1"><code class="c spaces"> </code><code class="c comments">Problem: 1069</code></div><div class="line number53 index52 alt2"><code class="c spaces"> </code><code class="c comments">User: Carvin</code></div><div class="line number54 index53 alt1"><code class="c spaces"> </code><code class="c comments">Language: C++</code></div><div class="line number55 index54 alt2"><code class="c spaces"> </code><code class="c comments">Result: Runtime Error
仅供借鉴!只是提出一种方法!真机调试是没有问题的!
</code></div><div class="line number56 index55 alt1"><code class="c comments">****************************************************************/</code></div>
#include <iostream>
#include <string>
using namespace std;
struct student
{
int studentNum;
int age;
string sex;
string name;
};
int main()
{
student A[1000];
int Index[10000];
int a,b,c;
int m,n;
int i,j,k;
while (cin>>n)
{
bool flag =false;
for (i=0;i<n;i++)
{
cin>>A[i].studentNum>>A[i].name>>A[i].sex>>A[i].age;
}
cin>>m;
for (j=0;j<m;j++)
{
cin>>Index[j];
}
for (k=0;k<j;k++)
{
for (int a=0;a<=i;a++)
{
if (Index[a]==A[k].studentNum)
{
flag = true;
if(Index[a]<10)
cout<<"0"<<A[a].studentNum<<" "<<A[a].name<<" "<<A[a].sex<<" "<<A[a].age<<endl;
else
cout<<A[a].studentNum<<" "<<A[a].name<<" "<<A[a].sex<<" "<<A[a].age<<endl;
}
}
if (!flag)
{
cout<<"'No Answer!'"<<endl;
}
}
}
}
#include<stdio.h>
#include<string.h>
struct node{
char num[100];
char name[100];
char sex[10];
int age;
}stu[1005];
int main()
{
int i,j,m,n;
char s[10005][100];
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
scanf("%s %s %s %d",stu[i].num,stu[i].name,stu[i].sex,&stu[i].age);
}
scanf("%d",&m);
for(i=0;i<m;i++) scanf("%s",s[i]);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(strcmp(stu[j].num,s[i])==0){
printf("%s %s %s %d\n",stu[j].num,stu[j].name,stu[j].sex,stu[j].age);
break;
}
}
if(j==n) printf("No Answer!\n");
}
}
return 0;
}
/**************************************************************
Problem: 1069
User: Carvin
Language: C++
Result: Accepted
Time:20 ms
Memory:2136 kb
****************************************************************/