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