最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值

 更新時間:2024年11月23日 09:35:09   作者:zhuzhuxia???  
這篇文章主要給大家介紹了關(guān)于C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值的相關(guān)資料,該代碼通過定義一個名為LargestTow的函數(shù)來找出數(shù)組中的最大值和次大值,并將結(jié)果分別存入指針所指向的內(nèi)存單元中,需要的朋友可以參考下

代碼示例: 

#include <stdio.h>

// 函數(shù)用于找出數(shù)組中的最大值和次大值
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;
}

以下是按照先遍歷數(shù)組找出最大值,然后再次遍歷數(shù)組找出最小值的思路,使用 C 語言編寫的代碼來解決上述問題(找出n個整數(shù)中的最大值和次大值):

#include <stdio.h>

// 函數(shù)用于找出數(shù)組中的最大值和次大值
void LargestTow(int a[], int n, int *pfirst, int *psecond) {
    int max_value = a[0];
    int max_index = 0;
    // 第一次遍歷數(shù)組,找出最大值及其索引
    for (int i = 1; i < n; i++) {
        if (a[i] > max_value) {
            max_value = a[i];
            max_index = i;
        }
    }
    *pfirst = max_value;

    // 將最大值所在位置的元素設(shè)為一個很小的值,避免它干擾找次大值
    a[max_index] = -99999999;

    int second_max_value = a[0];
    // 第二次遍歷數(shù)組,找出次大值
    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個整數(shù)中的最大值和次大值。要求定義一個函數(shù)LargestTow(),求數(shù)組a的最大值和次大值兩個值,分別存入形參指針pfirst和psecond所指存儲單元,函數(shù)原型如下:

void LargestTow(int a[],int n,int *pfirst,int *psecond)
{
/*數(shù)組a有n個元素,將數(shù)組中的最大值存入形參指針pfirst所指內(nèi)存單元,將數(shù)組中第二大的值存入形參指針psecond所指內(nèi)存單元。 */
}

輸入描述

輸入有兩行,輸入第一行是一個整數(shù)n,1<n<=1000;第二行是n個整數(shù),由空格隔開。

輸出描述

輸入兩個整數(shù),表示數(shù)組中最大的兩個值。輸出占一行。

樣例輸入

5
6 3 4 9 8

樣例輸出

9 8

總結(jié) 

到此這篇關(guān)于C語言用指針函數(shù)尋找數(shù)組中的最大值與次大值的文章就介紹到這了,更多相關(guān)C語言尋找數(shù)組最大值與次大值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

溧阳市| 鄂托克旗| 北辰区| 拉萨市| 四平市| 晋江市| 阜城县| 屏边| 台州市| 双牌县| 蒙阴县| 奇台县| 满洲里市| 天台县| 安化县| 滦平县| 华坪县| 洪江市| 泗洪县| 成武县| 洱源县| 黄浦区| 奇台县| 兴隆县| 龙陵县| 上饶市| 潜江市| 肥西县| 寻乌县| 肥城市| 义马市| 张掖市| 塘沽区| 家居| 延川县| 德兴市| 咸丰县| 平乡县| 尼勒克县| 时尚| 三原县|