C语言用指针函数寻找数组中的最大值与次大值
代码示例:
#include <stdio.h>
// 函数用于找出数组中的最大值和次大值
void LargestTow(int a[], int n, int *pfirst, int *psecond) {
*pfirst = a[0];
*psecond = a[1];
if (*psecond > *pfirst) {
// 如果初始的次大值大于最大值,交换它们
int temp = *pfirst;
*pfirst = *psecond;
*psecond = temp;
}
for (int i = 2; i < n; i++) {
if (a[i] > *pfirst) {
// 如果当前元素大于最大值,更新次大值为原来的最大值,最大值更新为当前元素
*psecond = *pfirst;
*pfirst = a[i];
} else if (a[i] > *psecond) {
// 如果当前元素大于次大值但小于最大值,更新次大值为当前元素
*psecond = a[i];
}
}
}
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int max, second_max;
LargestTow(a, n, &max, &second_max);
printf("%d %d\n", max, second_max);
return 0;
}以下是按照先遍历数组找出最大值,然后再次遍历数组找出最小值的思路,使用 C 语言编写的代码来解决上述问题(找出n个整数中的最大值和次大值):
#include <stdio.h>
// 函数用于找出数组中的最大值和次大值
void LargestTow(int a[], int n, int *pfirst, int *psecond) {
int max_value = a[0];
int max_index = 0;
// 第一次遍历数组,找出最大值及其索引
for (int i = 1; i < n; i++) {
if (a[i] > max_value) {
max_value = a[i];
max_index = i;
}
}
*pfirst = max_value;
// 将最大值所在位置的元素设为一个很小的值,避免它干扰找次大值
a[max_index] = -99999999;
int second_max_value = a[0];
// 第二次遍历数组,找出次大值
for (int i = 1; i < n; i++) {
if (a[i] > second_max_value) {
second_max_value = a[i];
}
}
*psecond = second_max_value;
}
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int max, second_max;
LargestTow(a, n, &max, &second_max);
printf("%d %d\n", max, second_max);
return 0;
}题目描述
求n个整数中的最大值和次大值。要求定义一个函数LargestTow(),求数组a的最大值和次大值两个值,分别存入形参指针pfirst和psecond所指存储单元,函数原型如下:
void LargestTow(int a[],int n,int *pfirst,int *psecond)
{
/*数组a有n个元素,将数组中的最大值存入形参指针pfirst所指内存单元,将数组中第二大的值存入形参指针psecond所指内存单元。 */
}输入描述
输入有两行,输入第一行是一个整数n,1<n<=1000;第二行是n个整数,由空格隔开。
输出描述
输入两个整数,表示数组中最大的两个值。输出占一行。
样例输入
5
6 3 4 9 8
样例输出
9 8
总结
到此这篇关于C语言用指针函数寻找数组中的最大值与次大值的文章就介绍到这了,更多相关C语言寻找数组最大值与次大值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何通过UltraEdit解析BMP文件内部结构(BMP位图基础)
我们先打开画图随便画一幅图并采用24位bmp图像格式保存,就得到了一张24位真彩色的位图,下面我们来详细分析bmp位图的各个组成部分,感兴趣的朋友跟随小编一起看看吧2021-08-08
深入理解:Java是类型安全的语言,而C++是非类型安全的语言
本篇文章是对Java是类型安全的语言,而C++是非类型安全的语言进行了详细的分析介绍,需要的朋友参考下2013-06-06
C++、python和go语言实现的简单客户端服务器代码示例
这篇文章主要介绍了C++、python和go语言实现的简单客户端服务器代码示例,本文分别给出了3种语言的客户端服务器通信代码实例,需要的朋友可以参考下2015-03-03


最新评论