m0_62634677 2021-12-31 00:53 采纳率: 40%
浏览 21
已结题

C语言这两道题不会写呀,能康康嘛。

img

  • 写回答

1条回答 默认 最新

  • _GX_ 2021-12-31 08:48
    关注

    3

    #include <stdio.h>
    #include <string.h>
    
    #define N 256
    
    int main()
    {
        char s[N];
        fgets(s, N, stdin);
        const char *p = s;
        while (*p == ' ')
            p++;
        if (p != s)
            strcpy(s, p);
        printf("%s", s);
        return 0;
    }
    

    4

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define M 10
    #define N 15
    
    void merge(int sa[], int na, int sb[], int nb)
    {
        int *pa = sa + na - 1;
        int *pb = sb + nb - 1;
        int *q = sa + na + nb - 1;
        while (pa >= sa && pb >= sb)
        {
            if (*pa > *pb)
            {
                *q-- = *pa--;
            }
            else if (*pb > *pa)
            {
                *q-- = *pb--;
            }
            else
            {
                *q-- = *pa--;
                *q-- = *pb--;
            }
        }
        while (pa >= sa)
            *q-- = *pa--;
        while (pb >= sb)
            *q-- = *pb--;
    }
    
    void sort(int a[], int n)
    {
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = i + 1; j < n; j++)
            {
                if (a[j] < a[i])
                {
                    int t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }
            }
        }
    }
    
    int main()
    {
        int a[N + M], b[N];
    
        srand(time(NULL));
        for (int i = 0; i < M; i++)
            a[i] = rand() % 100;
        for (int i = 0; i < N; i++)
            b[i] = rand() % 100;
        sort(a, M);
        sort(b, N);
    
        printf("a[%d]: ", M);
        for (int i = 0; i < M; i++)
            printf("%d ", a[i]);
        printf("\n");
    
        printf("b[%d]: ", N);
        for (int i = 0; i < N; i++)
            printf("%d ", b[i]);
        printf("\n");
    
        merge(a, M, b, N);
        printf("after merge a and b:\n");
        for (int i = 0; i < M + N; i++)
            printf("%d ", a[i]);
        printf("\n");
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月8日
  • 已采纳回答 12月31日
  • 创建了问题 12月31日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路