Return smallest and largest number by rearranging digits.
Hello, budding developers.
As the topic says it all. We will write a program which will take 4 digits and rearrange those digits to give the smallest 4 digit and largest 4 digit number. It should be a valid 4 digit number eg.1000 and not 0001.
Editor used: CodeBlocks
Language used: C++
Program:
#include<iostream>
using namespace std;
int main()
{
int arr[4],arr2[4];
int temp=0;
cout<<"Enter 4 digits:\n";
for(int i=0;i<4;i++)
{
cin>>arr[i];
arr2[i]=arr[i];
}
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}}}
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
{
if(arr2[j]<arr2[j+1])
{
temp=arr2[j];
arr2[j]=arr2[j+1];
arr2[j+1]=temp;
}}}
if(arr[0]==0)
{
temp=arr[0];
arr[0]=arr[1];
arr[1]=temp;
}
if(arr[0]==0 && arr[1]==0)
{
temp=arr[0];
arr[0]=arr[2];
arr[2]=temp;
}
if(arr[0]==0 && arr[1]==0 && arr[2]==0)
{
temp=arr[0];
arr[0]=arr[3];
arr[3]=temp;
}
cout<<"\nSmallest no==";
for(int i=0;i<4;i++)
{
cout<<arr[i];
}
cout<<"\nLargest no==";
for(int i=0;i<4;i++)
{
cout<<arr2[i];
}
return 0;
}
Output:
Comments