请用c语言程序编写下类要求的代码。任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现;排序用选择法函数实现。主函数输入20正整数,调用素数函数,排序函数,输出排序后的素数。
时间: 2024-02-15 08:02:30 浏览: 51
好的,以下是您所需的C语言代码:
```c
#include <stdio.h>
// 判断是否为素数的函数
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
// 选择法排序的函数
void selection_sort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
int min_idx = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
int temp = arr[i];
arr[i] = arr[min_idx];
arr[min_idx] = temp;
}
}
// 主函数
int main() {
int nums[20], primes[20], cnt = 0;
for (int i = 0; i < 20; i++) {
printf("请输入第%d个正整数:", i+1);
scanf("%d", &nums[i]);
}
for (int i = 0; i < 20; i++) {
if (is_prime(nums[i])) {
primes[cnt++] = nums[i];
}
}
selection_sort(primes, cnt);
printf("排序后的素数为:");
for (int i = 0; i < cnt; i++) {
printf("%d ", primes[i]);
}
return 0;
}
```
以上代码可以依次输入20个正整数,找出其中的素数,并将这些素数按由小到大排序输出。其中,is_prime函数用于判断一个数是否为素数,selection_sort函数用于对素数进行选择法排序,主函数则依次输入20个正整数,调用is_prime和selection_sort函数,输出排序后的素数。
阅读全文