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

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

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

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

(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