Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để tìm các số lớn nhất và nhỏ nhất thứ hai trong một mảng

Nhập các phần tử của mảng và sau đó, sắp xếp các số theo thứ tự giảm dần bằng cách sử dụng kỹ thuật hoán đổi. Sau đó, với sự trợ giúp của vị trí chỉ mục, hãy thử in phần tử lớn thứ hai và phần tử nhỏ thứ hai trong một mảng.

Một mảng được sử dụng để chứa nhóm các phần tử chung dưới một tên.

Các phép toán mảng trong ngôn ngữ lập trình C như sau -

  • Chèn
  • Xóa
  • Tìm kiếm

Thuật toán

Dưới đây là một thuật toán để tìm số lớn thứ hai và số nhỏ thứ hai trong một mảng -

Bước 1 - Khai báo và đọc số lượng phần tử.

Bước 2 - Khai báo và đọc kích thước mảng trong thời gian chạy.

Bước 3 - Nhập các phần tử của mảng.

Bước 4 - Sắp xếp các số theo thứ tự giảm dần.

Bước 5 - Sau đó, tìm số lớn thứ hai và số nhỏ thứ hai bằng cách sử dụng chỉ mục.

Bước 6 - In số lớn thứ hai và số nhỏ thứ hai.

Chương trình

Dưới đây là chương trình C để tìm số lớn thứ hai và số nhỏ thứ hai trong một mảng -

#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);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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