大黑色子 2022-11-24 01:54 采纳率: 66.7%
浏览 2
已结题

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

img

img

img


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

  • 写回答

4条回答 默认 最新

  • 我系真滴菜 2022-11-24 07:26
    关注

    试一下吧:
    第一题:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月2日
  • 已采纳回答 11月24日
  • 创建了问题 11月24日

悬赏问题

  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题