Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

สูงสุดและต่ำสุดของอาร์เรย์โดยใช้จำนวนการเปรียบเทียบขั้นต่ำใน C


เราได้รับอาร์เรย์ของจำนวนเต็ม ภารกิจคือการค้นหาองค์ประกอบต่ำสุดและสูงสุดของอาร์เรย์ในจำนวนการเปรียบเทียบขั้นต่ำ

ป้อนข้อมูล

Arr[] = { 1,2,4,5,-3,91 }

ผลผลิต

Maximum element : 91 Minimum Element : -3

คำอธิบาย − เพื่อลดจำนวนการเปรียบเทียบ เราจะเริ่มต้นองค์ประกอบสูงสุดและต่ำสุดด้วย Arr[0] และเริ่มจากองค์ประกอบที่ 2 เปรียบเทียบแต่ละค่ากับค่าต่ำสุดและสูงสุดแล้วอัปเดตตามลำดับ

ป้อนข้อมูล

Arr[] = { 10,20,21,31,18,11 }

ผลผลิต

Maximum element : 31 Minimum Element : 10

คำอธิบาย − นอกจากนี้ เพื่อลดจำนวนการเปรียบเทียบ เราจะเริ่มต้นองค์ประกอบสูงสุดและต่ำสุดด้วย Arr[0] และเริ่มจากองค์ประกอบที่ 2 เปรียบเทียบแต่ละค่ากับค่าต่ำสุดและสูงสุดแล้วอัปเดตตามลำดับ

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้อาร์เรย์จำนวนเต็มที่มีตัวเลขเป็น Arr[]

  • ฟังก์ชัน getresult( int arr[],int n) คือการค้นหาองค์ประกอบสูงสุดและต่ำสุดที่มีอยู่ในอาร์เรย์ในจำนวนต่ำสุด ของการเปรียบเทียบ

  • หากมีเพียงองค์ประกอบเดียว เราจะเริ่มต้นตัวแปร max และ min ด้วย arr[0] .

  • สำหรับองค์ประกอบมากกว่าหนึ่งรายการ เราจะเริ่มต้น max ด้วย arr[1] และ min ด้วย arr[0]

  • Inside for loop เริ่มเดินข้ามจากองค์ประกอบที่สาม ( i=2 ) จนถึงสุดท้าย

  • ตอนนี้เราจะเปรียบเทียบแต่ละค่า ( arr[i] ) กับค่าต่ำสุดและสูงสุด หากน้อยกว่า min ให้อัปเดต min ด้วย arr[i] หากมากกว่า max ให้อัปเดต max ด้วย arr[i].

  • ในตอนท้ายพิมพ์ผลลัพธ์ที่เก็บไว้ในตัวแปรสูงสุดและต่ำสุด

ตัวอย่าง

#include <stdio.h>
#include <math.h>
int getresult(int arr[], int n){
   int min=0,max=0;
   /*If there is only one element then return it as min and max both*/
   if (n == 1)
      { min=max=arr[0]; }
   /* If there are more than one elements, then initialize min and max*/
   if (arr[0] > arr[1]){
      max = arr[0];
      min = arr[1];
   }
   else{
      max = arr[1];
      min = arr[0];
   }
   for (int i = 2; i<n; i++){
      if (arr[i] > max)
         max = arr[i];
      else if (arr[i] < min)
         min = arr[i];
   }
   printf(" Minimum element: %d", min);
   printf(" Maximum element: %d", max);
}
/* Driver program to test above function */
int main(){
   int arr[] = {200, 191, 112, -11, 330, 60};
   int n = 6;
   getresult (arr, n);
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Minimum element: -11 Maximum element: 330