hdu 1004

    xiaoxiao2021-03-25  110

    入门级水题,重点在于strcmp比较字符串(不要用==),然后每个颜色对应一个num数组,输入颜色时遍历前面的,如果有重复的这个颜色,对应数组就加1.

    WA:

    #include<stdio.h> #include<string.h> char color[1000][20]; int num[1000]; int main() { int n,m,t; while(scanf("%d",&n)==1 && n) { memset(num,0,sizeof(num)); for(int i=0;i<n;i++) { scanf("%s",color[i]); for(int j=0;j<=i;j++) { if(!strcmp(color[j],color[i])) { num[i]++; } } } int maxn=num[0]; for(int k=0;k<n;k++) {if(num[k]>maxn) {maxn=num[k];t=k;}} printf("%s\n",color[t]); } return 0; }AC:

    #include<stdio.h> #include<string.h> int main() { int N; char a[1000][16]; int num[1000]; while(scanf("%d",&N)==1&&N) { int t=0; for(int i=0;i<N;i++) { num[i]=0; scanf("%s",a[i]); for(int j=0;j<i;j++) {if(!strcmp(a[j],a[i])) num[i]++;} } int max=num[0]; for(int k=1;k<N;k++) { if(num[k]>max) {max=num[k];t=k;} } printf("%s\n",a[t]); } return 0; } 哈哈,是不是觉得上述两者没啥区别,我初学的时候忽略了while(scanf)问题中某些值要初始化,如这里的t

    转载请注明原文地址: https://ju.6miu.com/read-11656.html

    最新回复(0)