一次性输入任意长度的一串数宇后(可重复),在易除重复的数宇后按照从小到大的顺序排序井输出,要求程
序开始运行后能够提示用户进行输入,且程序能够重复运行,直到输入"!q〞井回车后退出运行。
定义两个有五个元素的数组,用户分别向两个数组中输入五个整数,使用指针将两个数组里面的数字按原顺序
交叉排列井形成-
- 个十个元素的数组并输出
两道题不要用太难的知识完成,是网上的题目,想不出答案想试试,刚开始学,没什么头绪
一次性输入任意长度的一串数宇后(可重复),在易除重复的数宇后按照从小到大的顺序排序井输出,要求程
序开始运行后能够提示用户进行输入,且程序能够重复运行,直到输入"!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