用C语言写一个在0到999之间输入数字,用/隔开数字,用~表示前后两个数字包含的连续数字,例如1~10就打印从1到10中间的全部数字,200~300就打印从200到300之间包含的全部数字,打印出全部输入的数字,
时间: 2024-05-05 11:21:04 浏览: 55
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int num[1000] = {0};
int input, start, end;
scanf("%d", &input);
while (input >= 0 && input <= 999) {
num[input] = 1;
scanf("%d", &input);
}
for (int i = 0; i < 1000; i++) {
if (num[i] == 1) {
start = i;
while (num[i+1] == 1 && i < 999) {
i++;
}
end = i;
if (start == end) {
printf("%d/", start);
} else if (end - start == 1) {
printf("%d/%d/", start, end);
} else {
printf("%d~%d/", start, end);
}
}
}
return 0;
}
```
程序首先定义了一个长度为1000的数组`num`,用来记录输入的数字是否存在。接着利用`scanf()`函数从输入中读取数字,将其作为数组下标,将对应位置的元素设为1,表示该数字存在。如果输入的数字不在0到999之间,则退出输入循环。
接下来,程序遍历数组`num`,当遇到元素为1时,就表示存在这个数字,需要进行输出。如果该数字是一个单独的数字,直接输出该数字和一个斜杠;如果该数字和下一个数字连续,就一直往后遍历数组,直到找到一个不连续的数字,输出一个以波浪线表示的区间。如果该数字和下一个数字不连续,就输出一个斜杠,表示该数字单独存在。
最终程序输出所有输入的数字,并按照要求用斜杠和波浪线进行分隔。
阅读全文
相关推荐












