用C语言编写一个程序,由主函数和如下函数构成。 ⑴设计函数:input(),输入n个无序的整数存储在一个数组中; ⑵设计函数:sort(),用起泡法对这n个数组中的各个数据从大到小排序; ⑶设计函数:search(),求这n个数组中任一一个数开始到最后一个之间的所有素数。
时间: 2024-03-20 10:42:30 浏览: 243
好的,下面是代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
void input(int arr[], int n) {
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
}
void sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
void search(int arr[], int n, int index) {
printf("%d开始到最后一个之间的素数有:\n", arr[index]);
for (int i = index; i < n; i++) {
if (isPrime(arr[i])) {
printf("%d ", arr[i]);
}
}
printf("\n");
}
int main() {
int n;
printf("请输入数组长度:\n");
scanf("%d", &n);
int arr[n];
input(arr, n);
sort(arr, n);
printf("排序后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
int index;
printf("\n请输入要查找素数的数的下标:\n");
scanf("%d", &index);
search(arr, n, index);
return 0;
}
```
这个程序实现了输入n个无序的整数存储在一个数组中,用起泡法对这n个数组中的各个数据从大到小排序,求这n个数组中任一一个数开始到最后一个之间的所有素数的功能。具体实现过程如下:
- `input()`函数:通过输入函数,将n个整数存储在一个数组中。
- `sort()`函数:使用起泡法对数组中的各个数据从大到小排序。
- `isPrime()`函数:判断一个数是否为素数。
- `search()`函数:求这n个数组中任一一个数开始到最后一个之间的所有素数。
- `main()`函数:主函数中调用上述函数,实现程序的完整功能。
希望可以帮到你!
阅读全文