《算法笔记》3.2小节——入门模拟->查找元素
C题反复坑,注意在struct里面不能直接string,(正常输出但是返回 Process returned -1073741819 (0xC0000005)
使用字符数组,但是数组不能直接比较大小,自己写same函数,(直接等号会一直返回0.。奇怪的是!这个公式还会返回0.。迷茫)
还有就是一定要注意在pat里面,题目没说一组数据,就按照多读取处理
id要使用string而不是int,他那个不是固定补几个位置的,认真读题,注意套路
#include<stdio.h> #include<string.h> #include<string> using namespace std; bool same(char s1[],char s2[]) { // printf("hah%d %d ",strlen(s1),strlen(s2)); if(strlen(s1)!=strlen(s2)) return false; for(int i=0;i<strlen(s1);i++) { if(s1[i]!=s2[i]) return false; //printf("this i%d ",i); } return true; } struct student { char id[256]; char name[256]; char gender[256]; int secnum; }stu[1005]; int main() { int n,m; char searchnum[256]; int q; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) { scanf("%s",stu[i].id); getchar(); scanf("%s",stu[i].name); getchar(); scanf("%s",stu[i].gender); scanf("%d",&stu[i].secnum); } scanf("%d",&m); getchar(); while(m--) { scanf("%s",&searchnum); //printf("%s ",searchnum); getchar(); int temp=0; //printf("%d ",same(stu[temp].id,searchnum)); while(temp<n && !same(stu[temp].id,searchnum)) //printf("%d ",!stu[temp].id==searchnum); // while(temp<n && !stu[temp].id==searchnum) temp++; if(temp==n) printf("No Answer! "); else { printf("%s ",stu[temp].id); printf("%s ",stu[temp].name); printf("%s ",stu[temp].gender); printf("%d ",stu[temp].secnum); } } } return 0; }