日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求最大、次大和第3大的值

發布時間:2024/8/1 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求最大、次大和第3大的值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

7-1 求最大、次大和第3大的值 (25 分)

本題目要求讀入n個整數,要求用最少的比較次數,輸出它們的最大值、第2大的值和第3大的值。例如,對于13 13 1 10 34
10這6個數,最大值為34,第2大的值為13,第3大的值為10。

輸入格式:

輸入有兩行。第一行為整數個數n(≤1 000 000),第二行給出n個以空格分隔的整數。

輸出格式:

對每一組輸入,在一行中輸出最大值、第2大的值和第3大的值值,中間以一個空格分隔,但行尾沒有多余空格。
如果輸入數據不足三個,則輸出“Invalid Input”。 如果沒有第3大的值,則輸出“There is no third largest
element”。 如果沒有第2大和第3大的值,則輸出“There is no second largest and third
largest element”。

輸入樣例:

6
13 13 1 10 34 10

輸出樣例:

34 13 10

#include<stdio.h> int main() {int n,max[3]={-100000,-100000,-100000},cnt=0;scanf("%d",&n);if(n<3){printf("Invalid Input\n");return 0;}//不足三個數據,直接return 0;int a[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int i=0;i<n;i++){if(a[i]>max[0]){max[0]=a[i];cnt++;}}for(int i=0;i<n;i++){if(a[i]>max[1]&&a[i]<max[0]){max[1]=a[i];cnt++;}}for(int i=0;i<n;i++){if(a[i]>max[2]&&a[i]<max[1]){max[2]=a[i];cnt++;}}if(cnt==1)printf("There is no second largest and third largest element");else if(cnt==2)printf("There is no third largest element");else printf("%d %d %d",max[0],max[1],max[2]); }

總結

以上是生活随笔為你收集整理的求最大、次大和第3大的值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。