1. 程式人生 > >Codeup id=1935 Problem C 版本1.0

Codeup id=1935 Problem C 版本1.0

目前程式碼還存在一點問題 答案錯誤50% 不知道問題的原因等後期修改

#include<iostream>
#include<stdlib.h>
using namespace std;
struct Student
{int id;
 char name[100];
 char sex[100];
 int age;
}person[1001];
int searchfor(int a,int b)
{int searchid,x,j;
for(int k=0;k<a;k++)
 {
         x=0;
    scanf("%d",&searchid);//查詢id
    if(searchid==0)break;
    for(j=0;j<b;j++)
    {
            if(person[j].id==searchid)
         {x=1;printf("%03d %s %s %d\n",person[j].id,person[j].name,person[j].sex,person[j].age);}
      }
      if(x==0)
      printf("No Answer!\n");
}}
int main()
{int Num,time,i,p;
//printf("輸入儲存學生人數\n");
scanf("%d",&Num);
//printf("輸入每一學生的資料\n");
for(i=0;i<Num;i++)
{scanf("%d%s%s%d",&person[i].id,person[i].name,&person[i].sex,&person[i].age);//輸入每一位人的資料
}
//printf("輸入查詢次數\n");
scanf("%d",&time);//輸入查詢次數
//printf("輸入查詢id\n");
   p=searchfor(time,Num);

    
    return 0;}

 

 

把型別全換成換了用c++直接輸出就好了

#include<iostream>
#include<stdlib.h>
using namespace std;
struct Student
{string id;
 string name;
 string sex;
 string age;
}person[1020];
int searchfor(int a,int b)
{int flag,j;

for(int k=0;k<a;k++)
 { string temp;
      int flag=0;
      cin>>temp;
    for(j=0;j<b;j++)
    {      
            if(person[j].id==temp)
         {flag=1;
         cout<<person[j].id<<" "<<person[j].name<<" "<<person[j].sex<<" "<<person[j].age<<" "<<endl;}
      }
      if(flag==0)
      cout<<"No Answer!"<<endl;
}}
int main()
{int Num,time,i;
while(cin>>Num)
{
for(i=0;i<Num;i++)
 {cin>>person[i].id>>person[i].name>>person[i].sex>>person[i].age;
 }//輸入每一位人的資料

   cin>>time;
    searchfor(time,Num);
    }
    return 0;
}