/*Assignment
Program no. Ex7. */
//Program for obtaining another integer with digits in decending order
void main()
{
int n;
int i,j,temp,len,x=1;
int rem=0,add=0,a[5];
clrscr();
printf("\n\n Enter a positive integer: "); // Accept a number
scanf("%d",&n);
if(n<0)
{
printf("\n\n Error: Enter a correct positive integer ");
printf("\n\n Please enter a positive integer: "); // Again accept a number
scanf("%d",&n);
}
temp=n; // Initialize temp variable
//Separate the digits and store it in an array
for(i=0,len=0;temp>0;temp/=10,i++,++len)
{
rem=temp%10;
a[i]=rem;
}
// Sorting the arrays in Ascending order
for(i=0;i<=len;i++)
{
for(j=i+1;j<len;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
//Providing place value to arrays
for(i=0,x=10;i!=len;i++)
{
if(i!=0)
{
a[i]=a[i]*x;
x=x*10;
}
}
//Add all arrays
for(i=0,add=0;i!=len;i++)
{
add=add+a[i];
}
//Display the output
printf("\n\n The digits sorted in decending order from left to right");
printf("\n\n Output: %d",add);
getch();
}

0 comments:
Post a Comment