C语言:找出二十个整数组成的数列中的素数,并把找出的素数按降序输出
时间: 2024-12-29 19:32:40 浏览: 10
在C语言中,找出一个包含二十个整数的数列中的素数并按照降序排列,可以采用以下步骤:
1. 定义一个函数`isPrime()`检查是否为素数,接受一个整数作为参数,返回值为布尔类型。这个函数通常会检查该数是否能被2到其平方根之间的任意整数整除。
```c
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
```
2. 创建一个数组存储这二十个整数,并初始化它们。
```c
#define NUM_ITEMS 20
int numbers[NUM_ITEMS] = {...}; // 初始化数值
```
3. 遍历数组,对每个元素判断是否为素数,如果是,则添加到结果数组`primes`中,并保持降序排列。
```c
int primes[NUM_ITEMS / 2];
int prime_count = 0;
for (int i = 0; i < NUM_ITEMS; i++) {
if (isPrime(numbers[i])) {
primes[prime_count++] = numbers[i]; // 保持升序插入,因为后续排序会自动降序
}
}
// 对结果数组进行降序排序
qsort(primes, prime_count, sizeof(int), compare_primes_descending);
```
4. 使用`qsort()`函数对`primes`数组进行降序排序,这里需要自定义比较函数`compare_primes_descending()`来实现降序。
```c
int compare_primes_descending(const void* a, const void* b) {
return *(int*)b - *(int*)a;
}
// 输出找到的所有素数(降序)
for (int i = 0; i < prime_count; i++) {
printf("%d ", primes[i]);
}
printf("\n");
```
阅读全文