C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

与えられた複雑さの制約を持つn個の要素の2番目に小さいものを見つけるC++プログラム


これは、与えられた複雑さの制約を持つn個の要素の中で2番目に小さい要素を見つけるためのC++プログラムです。

アルゴリズム

Begin
   function SecondSmallest() :
      /* Arguments to this function are:
         A pointer array a.
         Number of elements n
      */
   // Body of the function:
      A variable s1 is declared as to keep track of smallest number.
      A variable s2 is declared as to keep track of second smallest number.
      Initialize both s1 and s2 with INT_MAX.
      Traverse the data array using iteration.
      If current array element is lesser than current value in s1, then s2 = s1 and s1 =
         current array element.
         Else if array element is in between s1 and s2,
            then s2 = current array element.
         if(s2==INT_MAX)
            Print “no second smallest element is present".
         else
      Print s2 as second smallest element.
End

#include<iostream>
#include <climits> //for INT_MAX
using namespace std;
int SecondSmallest(int *a, int n) {
   int s1, s2, i,t;
   //initialize s1 and s2
   s1 =INT_MAX;
   s2=INT_MAX;
   for(i = 0; i < n; i++) {
      //If current element is smaller than s1
      if(s1 > a[i]) {
         //update s1 and s2
         s2 = s1;
         s1 = a[i];
      }
      //if a[i] is in between s1 and s2
      else if(s2 > a[i] && a[i]!=s1) {
         //update only s2
         s2 = a[i];
      }
   }
   if(s2==INT_MAX)
      cout<<"no second smallest element is present";
   else
      cout<<"Second smallest element is:"<<s2;
}
int main() {
   int n, i;
   cout<<"Enter the number of elements: ";
   cin>>n;
   int array[n];
   for(i = 0; i < n; i++) {
      cout<<"Enter "<<i+1<< " "<<"element: ";
      cin>>array[i];
   }
   SecondSmallest(array, n); //call the function
   return 0;
}

出力

Enter the number of elements: 5
Enter 1 element: 1
Enter 2 element: 2
Enter 3 element: 1
Enter 4 element: 3
Enter 5 element: 4
Second smallest element is:2

  1. C++で特定の円の2つの部分の角度の最小差を見つけるプログラム

    この問題では、円の角度に基づいて円の一部を表す配列が与えられます。私たちのタスクは、C++で特定の円の2つの部分の角度の最小差を見つけるプログラムを作成することです 。 問題の説明 −配列内の円のすべての部分の角度が与えられます。作った2つのピースの角度の差が最小になるようにピースを結合する必要があります。 問題を理解するために例を見てみましょう 入力 ang[] = {90, 45, 90, 135} 出力 90 説明 1番目と2番目を一緒に取る、つまり90 + 45=135。 3番目と4番目を一緒に取る、つまり90 + 135 =225 差=225-135=90 ソリ

  2. 配列の最大要素を見つけるためのC++プログラム

    配列には複数の要素が含まれており、配列内の最大の要素は他の要素よりも大きい要素です。 たとえば。 5 1 7 2 4 上記の配列では、7が最大の要素であり、インデックス2にあります。 配列の最大の要素を見つけるプログラムは次のとおりです。 例 #include <iostream> using namespace std; int main() {    int a[] = {4, 9, 1, 3, 8};    int largest, i, pos;    largest = a[0