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

โปรแกรม C เพื่อค้นหาตัวเลขที่ใหญ่และเล็กที่สุดเป็นอันดับสองในอาร์เรย์


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

อาร์เรย์ใช้เพื่อเก็บกลุ่มขององค์ประกอบทั่วไปภายใต้ชื่อเดียว

การทำงานของอาร์เรย์ในภาษาซีมีดังต่อไปนี้ -

  • แทรก
  • ลบ
  • ค้นหา

อัลกอริทึม

ด้านล่างนี้เป็นอัลกอริทึมในการค้นหาตัวเลขที่ใหญ่เป็นอันดับสองและน้อยที่สุดเป็นอันดับสองในอาร์เรย์ -

ขั้นตอนที่ 1 − ประกาศและอ่านจำนวนองค์ประกอบ

ขั้นตอนที่ 2 − ประกาศและอ่านขนาดอาร์เรย์ที่รันไทม์

ขั้นตอนที่ 3 − ป้อนองค์ประกอบอาร์เรย์

ขั้นตอนที่ 4 − เรียงลำดับตัวเลขจากมากไปหาน้อย

ขั้นตอนที่ 5 − จากนั้น ให้ค้นหาตัวเลขที่ใหญ่เป็นอันดับสองและน้อยที่สุดเป็นอันดับสองโดยใช้ดัชนี

ขั้นตอนที่ 6 − พิมพ์ตัวเลขที่ใหญ่เป็นอันดับสองและรองลงมา

โปรแกรม

รับด้านล่างเป็นโปรแกรม C เพื่อ ค้นหาตัวเลขที่ใหญ่เป็นอันดับสองและรองลงมาเป็นอันดับสองในอาร์เรย์

#include<stdio.h>
void main(){
   int i,j,a,n,counter,ave,number[30];
   printf ("Enter the value of N\n");
   scanf ("%d", &n);
   printf ("Enter the numbers \n");
   for (i=0; i<n; ++i)
      scanf ("%d",&number[i]);
   for (i=0; i<n; ++i){
      for (j=i+1; j<n; ++j){
         if (number[i] < number[j]){
            a = number[i];
            number[i] = number[j];
            number[j] = a;
         }
      }
   }
   printf ("The numbers arranged in descending order are given below\n");
   for (i=0; i<n; ++i)
      printf ("%10d\n",number[i]);
   printf ("The 2nd largest number is = %d\n", number[1]);
   printf ("The 2nd smallest number is = %d\n", number[n-2]);
   ave = (number[1] +number[n-2])/2;
   counter = 0;
   for (i=0; i<n; ++i){
      if (ave==number[i])
         ++counter;
   }
   if (counter==0)
      printf("The average of 2nd largest & 2nd smallest is not in the array\n");
   else
      printf("The average of 2nd largest & 2nd smallest in array is %d in numbers\n", counter);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Enter the value of N

5
Enter the numbers
10
12
17
45
80

The numbers arranged in descending order are given below
80
45
17
12
10
The 2nd largest number is = 45
The 2nd smallest number is = 12
The average of 2nd largest & 2nd smallest is not in the array