Codeup id=1935 Problem C 版本1.0
阿新 • • 發佈:2018-11-16
目前程式碼還存在一點問題 答案錯誤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; }