2026/4/6 9:33:19
网站建设
项目流程
厦门海沧建设局网站,龙岗做网站的,学校网站怎么做的好坏,湖南株洲建设局网站编写一个主函数以及四个函数max(a, n)、min(a, n)、aver(a, n)和prime(m)。要求是#xff1a;函数max(a, n)、min(a, n)和aver(a, n)分别求出含有n个元素的数组a中的最大值、最小值和平均值#xff0c;并返回结果到主调函数。函数prime(m)要求对m是否为素数进行判断#xff…编写一个主函数以及四个函数max(a, n)、min(a, n)、aver(a, n)和prime(m)。要求是函数max(a, n)、min(a, n)和aver(a, n)分别求出含有n个元素的数组a中的最大值、最小值和平均值并返回结果到主调函数。函数prime(m)要求对m是否为素数进行判断如果不是素数则返回0否则返回1在主函数中任意输入10个39999之间的素数存放到数组中保证输入10个39999之间的素数输入的符合要求的素数未到十个时要求重新输入然后分别调用max、min和aver函数并输出返回的最大值、最小值和平均值。解题思路通过素数判断函数确保输入 10 个符合要求的素数存入数组再调用最值、平均值函数处理数组最后输出结果。#include stdio.h #include math.h int max(int n[], int m) { int max_1; max_1 n[0]; for (int i 0; i m; i) { if (n[i] max_1) { max_1 n[i]; } } return max_1; } int min(int n[], int m) { int min_1; min_1 n[0]; for (int i 0; i m; i) { if (n[i] min_1) { min_1 n[i]; } } return min_1; } int aver(int n[], int m) { int sum0; for (int i 0; i m; i) { sum n[i]; } sum sum / m; return sum; } int prime(int a) { int k 0; if (a 1) { return k; } else if (a 1) { if (a % 2 0) { return k; } else if (a % 2 ! 0) { for (int i 3; i sqrt(a)1; i 2) { if (a % i 0) { return k; } else { k; return k; } } } } } int main() { int k[10]; printf(输入10个39999之间的素数); for (int i 0; i 10; i) { scanf_s(%d, k[i]); prime(k[i]); while (prime(k[i]) 0) { scanf_s(%d, k[i]); } } printf(%d %d %d, max(k, 10), min(k, 10), aver(k, 10)); return 0; }2.编写名称为insertsearchsortdelElemprintArr,halfSearch的函数定义整型数组arr输入m个各不相同的元素假设数组arr的长度足够。测试上述函数的功能。各个函数的功能如下insert函数的功能为将形参x插入到数组a的后面要求x元素不与a中的其他元素相同如果相同在输出报错提示search函数的功能是在n个元素的数组a中按照顺序查找元素x返回x在数组a中的下标若无x元素则返回-1halfSearch函数的功能是在n个元素的数组a中按照折半查找法查找元素x返回x在数组a中的下标若无x元素则返回-1sort函数的功能是对数组a中的n个元素从小到大进行排序delElem函数的功能是在n个元素的数组a中删除形参为x的元素。printArr函数的功能是将数组a中n个的元素逐个输出解题思路构建测试基础确保初始数组符合 “元素各不相同” 的要求。函数功能实现按 “增、查、排、删、输出” 拆解按 “输出初始数组→插入→顺序查找→排序→折半查找→删除→最终输出” 的顺序验证每个函数的正确性。#include stdio.h void insert(int n, int a[], int *m) { for (int i 0; i *m; i) { if (n a[i]) { printf(输入错误,元素%d已存在插入失败\n, n); return; } } a[*m] n; (*m); printf(元素%d插入成功\n, n); } int search(int x, int n, int a[]) { for (int i 0; i n; i) { if (a[i] x) { printf(顺序查找成功元素%d在数组的第%d个位置下标%d\n, x, i 1, i); return i; } } printf(顺序查找失败数组中无元素%d\n, x); return -1; } void sort(int n, int a[]) { for (int i 0; i n; i) { for (int j n-1; j i; j--) { if (a[j] a[j - 1]) { int temp; temp a[j - 1]; a[j - 1] a[j]; a[j] temp; } } } printf(数组排序完成\n); } void delElem(int x, int *n, int a[]) { int k 0; int j 0; for (int i 0;i *n;i) { if (a[i] ! x) { a[j] a[i]; } else k; } *n - k; if (k 0) { printf(成功删除%d个元素%d\n, k, x); } else { printf(删除失败数组中无元素%d\n, x); } } void printArr(int n, int a[]) { if (n 0) { printf(数组为空\n); return; } for (int i 0;i n;i) { printf(%d , a[i]); } printf(\n); } int halfSearch(int x, int n, int a[]) { for (int i 0; i n; i) { for (int j n - 1; j i; j--) { if (a[j] a[j - 1]) { int temp; temp a[j - 1]; a[j - 1] a[j]; a[j] temp; } } } int low 0; int high n - 1; int mid; while (low high) { mid (low high) / 2; if (a[mid] x) { printf(二分查找成功元素%d在数组的第%d个位置下标%d\n, x, mid 1, mid); return mid; } else if (a[mid] x) { low mid 1; } else { high mid - 1; } } printf(二分查找失败数组中无元素%d\n, x); return -1; } int main() { int a[100000]; int n 0; int k 0; printf(输入数组的大小:); scanf_s(%d, n); printf(输入数组的值:); for (int i 0;i n;i) { scanf_s(%d, a[i]); } while (k ! 7) { printf(1.将形参x插入到数组a的后面\n); printf(2.在n个元素的数组a中按照顺序查找元素x\n); printf(3.查找元素x\n); printf(4.从小到大进行排序\n); printf(5.删除形参为x的元素\n); printf(6.逐个输出\n); printf(7.退出程序\n); printf(请输入你要选择的操作:); scanf_s(%d, k); int x; if (k 1) { printf(输入你要插入的元素:); scanf_s(%d, x); insert(x, a, n); continue; } if (k 2) { printf(输入你要查找的元素:); scanf_s(%d, x); search(x, n, a); continue; } if (k 3) { printf(输入你要查找的元素:); scanf_s(%d, x); halfSearch(x, n, a); continue; } if (k 4) { sort(n, a); for (int i 0;i n;i) { printf(%d, a[i]); } continue; } if (k 5) { printf(输入你要删除的元素:); scanf_s(%d, x); delElem(x, n, a); continue; } if (k 6) { printArr(n, a); continue; } } return 0; }