程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言,數組怎樣在去除重復元素後,求最大值與次大值

C語言,數組怎樣在去除重復元素後,求最大值與次大值

編輯:關於C語言

//原】C語言,數組怎樣在去除重復元素後,求最大值與次大值



#include<stdio.h>

int main()

{

int a[7];

printf("input seven numbers:");

for(int i=0;i<7;i++)

{

scanf("%d",&a[i]);

}

int len=7;//5 5 2 5 5

//兩個for循環用來遍歷

for(int j=0;j<len;++j)

{

for(int m=j+1;m<len;++m)

{

if(a[j]==a[m])

{

//發現與第一個for中相同的元素後,采用"覆蓋法"刪除

for(int k=m+1;k<len;++k) //此處會出現寫法的分歧--根據k=m+1的寫法,可能為len-1或其他...

a[k-1]=a[k];

len--;//長度要跟上變化

--m; //因為刪除了一個元素,要與a[j]比較的數組元素的下標實際沒變但值已改變)

}

}

}

for(i=0;i<len;i++)

printf("%d ",a[i]);

printf("\n");

int temp;

for(int n=0;n<len;n++)

for(int p=n+1;p<len;p++)

if(a[n]<=a[p])

{

temp=a[n];

a[n]=a[p];

a[p]=temp;

}

for(i=0;i<len;i++)

printf("%d ",a[i]);

printf("MAX=%d,S_MAX=%d\n",a[0],a[1]);

return 0;

}


//運行結果

//input seven numbers:7 5 7 5 8 6 8

//7 5 8 6

//8 7 6 5 MAX=8,S_MAX=7

//Press any key to continue


本文出自 “Jean_Z的學習博客” 博客,請務必保留此出處http://7905490.blog.51cto.com/7895490/1299815

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved