1. 程式人生 > >C語言求出陣列中的最大值和次大值!

C語言求出陣列中的最大值和次大值!

#include<stdio.h>
//改陣列大小隻需要修改 N後面的數字
#define N 5
	int main(void){

	int arr[N]={5,6,8,3,9};
		
	int max= 0;  //定義最大值並賦值
	int mid= 0;  //定義次大值並賦值
	for(int i = 0;i<N;i++){
	/*因為arr[i]是固定的 ,所以可以用arr[i]先和max比較,如果大於max 則
		把max的值賦給mid的值,然後把arr[i]賦給max  這樣max肯定比mid大
	
		

		*/	
	if(arr[i]>max){
	mid = max;
	max =arr[i];
	
		}else if(arr[i]>mid){/*  另一種情況 arr[i]處於兩者之間*/
			mid = arr[i];//  則吧arr[i]賦給mid
		}
	

	}
	printf("max=%d,mid=%d\n",max,mid);


	return 0;
	}


相關推薦

C語言陣列

#include<stdio.h> //改陣列大小隻需要修改 N後面的數字 #define N 5 int main(void){ int arr[N]={5,6,8,3,9}; int max= 0; //定義最大值並賦值 int mid= 0

C語言兩個數的大公約數小公倍數

輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最

C語言——兩個數的大公約數小公倍數

求兩個數的最大公約數的常用方法:※“輾轉相除法”,又名歐幾里得演算法。基本方法如下:設兩數為a和b(a>b),用a除以b,得a÷b=q......r,若r=0 ,則最大公約數為b;若r≠0 ,則再用b÷r,得b÷r=q......r',若r'=0,則最大公約數為r',若

(java)leetcode852 山脈陣列的封頂索引(二分查詢法找陣列的下標)(Peak Index in a Mountain Array)

題目描述: 我們把符合下列屬性的陣列 A 稱作山脈: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A

用 prompt 輸入字串,建立陣列,找陣列,問題闡述與解決。

用 prompt 輸入字串建立陣列。用三種方法找出陣列中最大值。問題闡述與解決。 實現目標:輸入一組數,並找出這組數中最大的值。 採用的方法: 雙 for迴圈,列出從小到大(從大到小)順序。 單 for 迴圈,一遍迴圈找出最大值。 使用 Math.max。

Problem B: 零起點學演算法81——找陣列元素的位置(下標值

#include<stdio.h> int main(void) { int n,a[10],i,max; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) scanf("%d",

無序陣列的K個數 或 第K的數

1、方法一:要求無序陣列中沒有重複元素,同時允許更改陣列內的內容。主要思想是利用快速排序Partition函式依次進行前K個元素的排序,平均時間複雜度O(n)。#include <iostream> #include <string> #in

資訊學奧林匹克競賽-C語言輸出3個數

輸出3個數中最大值 #include <stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c);

C語言10個數大數

#include <stdio.h> int main() { int max; int a[10]={1,20,3,4,5,6,7,8,9,10}; max=a[0]; for(int i=1;i<10;i++)  { &

C語言 一批整數出現多的個位數字

任務描述 給定一批整數,分析每個整數的每一位數字,求出現次數最多的個位數字。例如給定3個整數1234、2345、3456,其中出現最多次數的數字是3和4,均出現了3次。 功能要求 ①輸入格式:

陣列元素的位置(下標值)

Description 找出陣列中最大的元素的下標。 Input 多組測試,每組先輸入一個不大於10的整數n 然後是n個整數 Output 輸出這n個整數中最大的元素及下標值 Sample Input 4 1 4 5 6 Sample Output 6 3 #i

C語言兩個整數

上程式碼: #include<stdio.h> #define Max(a,b) ((a>b)?(a):(b))  //預處理實現 int max(int a,int b)   //函式實現 {return a>b?a:b; } int main()

C語言字串的特定的字元,並輸出

這裡我們用到了函式 strchr 這個函式返回值是一個指標 函式引數是 一個字串和一個字元。 #include <stdio.h> #include<string.h> void main() { char str[80]; char c

C語言_輸出字串長的一個大小寫字母組合

首先讀一個字元,判斷該字元是否為字母: 如果該字元為字母,則存入字母緩衝區,如果該字母后面為結束符,則記錄該字母組合的長度、起始和結束下標。 如果該字元不是字母,但該字元的前一個字元是字母,則記錄該字母組合的長度、起始和結束下標。清空字母緩衝區。 如果該字元不是字母且其

利用c語言輸入文字長的一行

前言 來源之《c程式語言》練習1-16 程式碼 #include<stdio.h> #define MAXLINE 1000 int getline(char line[], int ma

C語言0~999之間的所有“水仙花數”並輸出

執行環境: win10  vs2013 “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。  在數論中,水仙花數(Narcissis

c語言 0-999之間的水仙花數並輸出

求出0~999之間的所有“水仙花數”並輸出。 “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。 /* 在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯

bfprt演算法----找陣列小的k個數(Java)

 無序陣列中最小的k個數 對於一個無序陣列,陣列中元素為互不相同的整數,請返回其中最小的k個數。 給定一個整數陣列A及它的大小n,同時給定k,請返回其中最小的k個數。 測試樣例: [1,2,4,3],4,2 返回:[1,2] (1)利用堆,時間複雜度O(Nlog

劍指offer之找陣列小的n個數,之優先佇列

這道題最簡單的就是排序,時間複雜度O(nlogn)。不再講述。這裡可以使用優先佇列,時間複雜度O(nlogk)。注意檢驗k的合法性,不然初始化佇列時會報錯。import java.util.ArrayL

C語言 100~999之間的所有“水仙花數”並輸出

    “水仙花數”是指一個三位數,其各位數字的立方和確好等於該數本身,如;153=1+5+3?,則153是一個“水仙花數”。在數論中,水仙花數(Narcissistic number)也稱為自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),是指一