c中 题目内容:输入10个正整数到a数组中,对a[10]数组中的素数升序排序。 输入格式:在一行中输入10个用英文逗号,隔开的正整数。 输出格式:在一行中输出升序的素数序列,每个数之间用英文逗号,隔开,末尾没有多余的空格。 输入样例:10,3,1,5,4,8,7,2,9,11 输出样例:2,3,5,7,11 输入样例:16,12,1,6,4,8,14,18,24,21 输出样例:Not found!
时间: 2023-09-13 11:09:45 浏览: 117
好的,这是一个简单的数组操作题目,需要判断素数并排序。下面是 C 语言的实现代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int x) { // 判断素数
if (x <= 1) {
return false;
}
for (int i = 2; i < x; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
void sort(int a[], int n) { // 冒泡排序
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
int main() {
int a[10], prime[10], cnt = 0;
for (int i = 0; i < 10; i++) {
scanf("%d,", &a[i]);
if (is_prime(a[i])) { // 判断素数并存入 prime 数组中
prime[cnt++] = a[i];
}
}
if (cnt == 0) { // 若没有素数则输出 Not found!
printf("Not found!");
return 0;
}
sort(prime, cnt); // 对素数升序排序
for (int i = 0; i < cnt; i++) {
printf("%d", prime[i]);
if (i != cnt - 1) {
printf(",");
}
}
return 0;
}
```
输入样例:
```
10,3,1,5,4,8,7,2,9,11
```
输出样例:
```
2,3,5,7,11
```
输入样例:
```
16,12,1,6,4,8,14,18,24,21
```
输出样例:
```
Not found!
```
希望能够帮到你!
阅读全文