nameless777 2022-10-06 09:28 采纳率: 50%
浏览 133
已结题

是在网上看的,刚开始学,尽量别用太难的知识,可以的话注释解释一下

一次性输入任意长度的一串数宇后(可重复),在易除重复的数宇后按照从小到大的顺序排序井输出,要求程
序开始运行后能够提示用户进行输入,且程序能够重复运行,直到输入"!q〞井回车后退出运行。

定义两个有五个元素的数组,用户分别向两个数组中输入五个整数,使用指针将两个数组里面的数字按原顺序
交叉排列井形成-

  • 个十个元素的数组并输出
    两道题不要用太难的知识完成,是网上的题目,想不出答案想试试,刚开始学,没什么头绪
  • 写回答

1条回答 默认 最新

  • _GX_ 2022-10-06 14:01
    关注

    (1)

    #include <stdio.h>
    #include <string.h>
    
    #define MAX_SIZE 255
    
    int main() {
      char buffer[MAX_SIZE];
      while (scanf("%s", buffer) == 1 && strcmp(buffer, "!q") != 0) {
        int nums[10] = {0};
        const char *p = buffer;
        while (*p && *p >= '0' && *p <= '9')
          nums[*p++ - '0'] = 1;
        for (int i = 0; i < 10; i++)
          if (nums[i])
            printf("%d ", i);
        printf("\n");
      }
      return 0;
    }
    
    $ gcc -Wall main.c
    $ ./a.out
    32221
    1 2 3
    441122233
    1 2 3 4
    !q
    

    (2)

    #include <stdio.h>
    
    int main() {
      int a[5], b[5], c[10];
      for (int i = 0; i < 5; i++)
        scanf("%d", &a[i]);
      for (int i = 0; i < 5; i++)
        scanf("%d", &b[i]);
      const int *p = a;
      const int *q = b;
      for (int i = 0; i < 10; i += 2) {
        c[i] = *p++;
        c[i + 1] = *q++;
      }
      for (int i = 0; i < 10; i++)
        printf("%d ", c[i]);
      printf("\n");
    }
    
    $ gcc -Wall main.c
    $ ./a.out
    1 2 3 4 5
    5 6 7 8 9
    1 5 2 6 3 7 4 8 5 9
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月6日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大