c语言写一个程序 任意输入20个正整数找出其中的素数并按小到大输出,用两个函数实现功能在主函数输出结果
时间: 2024-05-04 18:18:10 浏览: 130
以下是一个使用两个函数实现找出20个正整数中的素数并按小到大输出的 C 语言程序:
```c
#include <stdio.h>
// 判断是否为素数
int isPrime(int num) {
int i;
for (i = 2; i < num; i++) {
if (num % i == 0) {
return 0; // 不是素数,返回 0
}
}
return 1; // 是素数,返回 1
}
// 找出素数并按小到大排序
void findAndSortPrimes(int nums[], int length) {
int i, j, temp;
for (i = 0; i < length - 1; i++) {
for (j = i + 1; j < length; j++) {
if (nums[i] > nums[j]) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
printf("素数:");
for (i = 0; i < length; i++) {
if (isPrime(nums[i])) {
printf("%d ", nums[i]);
}
}
}
int main() {
int nums[20], i;
printf("请输入20个正整数:");
for (i = 0; i < 20; i++) {
scanf("%d", &nums[i]);
}
findAndSortPrimes(nums, 20);
return 0;
}
```
程序流程:
1. 定义两个函数:`isPrime` 用于判断一个数是否为素数;`findAndSortPrimes` 用于找出素数并按小到大排序。
2. 在 `main` 函数中声明一个长度为 20 的数组 `nums`,并通过 `for` 循环输入 20 个正整数。
3. 调用 `findAndSortPrimes` 函数,将数组 `nums` 和数组长度 20 作为参数传入。
4. `findAndSortPrimes` 函数首先使用双层循环将数组 `nums` 按小到大排序,然后遍历数组,对每个数调用 `isPrime` 函数判断是否为素数,如果是素数则输出。
5. 程序执行完毕退出。
阅读全文