c语言的一个有趣的问题

img

img

把名字放到数组中双重循环用strcmp()函数比较两个字符串
你题目的解答代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main()
{
    int n,i,j,r=0,d=-1;
    scanf("%d", &n);
    char a[n][21];
    for (i = 0; i < n; i++)
    {
        scanf("%s", a[i]);
    }
    for (i = 1; i < n; i++)
    {
        for (j = 0; j < i; j++)
        {
            if (strcmp(a[j],a[i])==0)
            {
                if (r==0)
                    d = j;
                r++;
                break;
            }
        }
    }
    if (d!=-1){
        printf("%d\n", n-r+1);
        printf("%s\n", a[d]);
    }else{
        printf("%d\n", n);
        printf("000\n");
    }

    return 0;
}

如有帮助,望采纳!谢谢!

代码如下:

#include <stdio.h>
#include <string.h>
int main()
{
    char buf[500][20];
    int i,j,n,index=0,shasi=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        gets(buf[i]);
    
    for (i=1;i<n;i++)
    {
        for (j=0;j<i;j++)
        {
            if(strcmp(buf[i],buf[j]) == 0)
            {
                if(index == 0)
                    index = i;
                shasi++;
                break;
            }
        }
    }
    printf("%d\n",n-shasi+1); //放过第一个人
    if(index == 0)
        printf("000");
    else
        printf("%s",buf[index]);//放过的第一个人
    return 0;
}