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

以上是 C程序在数组中查找第二大和最小的数字 的全部内容, 来源链接: utcz.com/z/343754.html

回到顶部