C语言基础有点差,通过可追加酬金

img

img

img


要求用C语言
一共3道题呀 我们的oj不允许gets函数
最近太忙了没时间完成,求帮助解答一下~
通过可追加酬金

试一下吧:
第一题:

#include<stdio.h>

int main()
{
    int i, j, n, a[100] = {0}, b[100] = {0};

    scanf("%d", &n);
    
    for(i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }

    for(i = 0; i < n; i++)
    {
        for(j = 1; j <= 100; j++)
        {
            if(a[i] == j)
            {
                b[j]++;
                break;
            }
        }
    }

    for(j = 1; j <= 100; j++)
    {
        if((b[j] % 2) == 1)
        {
            break;
        }
    }

    printf("%d", j);
    return 0;
}

第二题:(这个题要求有空格输入,但是你说用不了gets函数,所以scanf我做了一下处理,你先试下看看吧。我这试了半天要用getchar函数清一下回车符,否则一直能捕获到回车,不知道原因是啥)

#include<stdio.h>

int main()
{
    int i;
    char a[4][255] = {0}, b[255] = {0};
    
    for(i = 0; i < 4; i++)
    {
        scanf("%[^\n]", a[i]);
        getchar();
    }

    i = 0;

    while((a[0][i] != '\0') && (a[1][i] != '\0') && (a[2][i] != '\0') && (a[3][i] != '\0'))
    {
        if((a[0][i] == a[1][i]) && (a[0][i] == a[2][i]) && (a[0][i] == a[3][i]))
        {
            b[i] = a[0][i];
            i++;
        }
        else
        {
            break;
        }
    }
    
    b[i] = '\0';

    printf("%s", b);
    return 0;
}

第三题:

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

int main()
{
    int i, j, len, mid;
    char a[255] = {0}, b[255] = {0}, temp;
    scanf("%[^\n]", a);
    
    len = strlen(a);

    if((len % 2) == 0)
    {
        mid = (len / 2 - 1);

        for(i = 0; i <= mid; i++)
        {
            b[i] = a[i];
        }

        for(i = 0; i < mid; i++)
        {
            for(j = i + 1; j <= mid; j++)
            {
                if(b[i] < b[j])
                {
                    temp = b[i];
                    b[i] = b[j];
                    b[j] = temp;
                }
            }
        }

        for(i = 0; i < len; i++)
        {
            if(i <= mid)
            {
                a[i] = a[mid + i + 1];
            }
            else
            {
                a[i] = b[i - mid - 1];
            }
        }
    }
    else
    {
        mid = (len / 2);
        
        for(i = 0; i < mid; i++)
        {
            b[i] = a[i];
        }

        for(i = 0; i < (mid - 1); i++)
        {
            for(j = i + 1; j < mid; j++)
            {
                if(b[i] < b[j])
                {
                    temp = b[i];
                    b[i] = b[j];
                    b[j] = temp;
                }
            }
        }

        for(i = 0; i < len; i++)
        {
            if(i < mid)
            {
                a[i] = a[mid + i + 1];
            }
            else if(i == mid)
            {
                ;
            }
            else
            {
                a[i] = b[i - mid - 1];
            }
        }
    }
   
    printf("%s", a);
    return 0;
}

难度算中等了吧

求助第三题