帮我看一道算法好吗?

来源:百度知道 编辑:UC知道 时间:2024/07/02 14:46:07
输入一个6位数的任意整数,求出各位数字所构成的最大数.例如,整数538691,则各位数字构成的最大数是986531.
#include <iostream>
#include <cmath>
using namespace std;

void Bubblesort (float a[],int size)
{float t;
for(int i=0;i<size;i++)
for(int j=0;j<size-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}

int main(void)
{int i;
int n=6;
cout<<"请输入一个6位整数:";
int a;
cin>>a;
int a[n];
for(i=0;i<6;i++) {a[i]=a/pow(10,5-i);
a=a%pow(10,5-i);
}
void Bubblesort(float a[6],6);
for(i=0;i<6;i++) cout<<a[i];
return 0;
}

#include <iostream>
#include <cmath>
using namespace std;

#define N 6

void Bubblesort (int a[],int size)
{int t;
for(int i=0;i<size;i++)
for(int j=0;j<size-i;j++)
if(a[j]<a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}

int main(void)
{int i;
int n=N;
cout<<"请输入一个6位整数:";
int a;
cin>>a;
int b[N];
for(i=0;i<6;i++) {b[i]=a/pow(10,5-i);
a=a%(int)pow(10,5-i);
}
Bubblesort(b,6);
for(i=0;i<6;i++) cout<<b[i];
return 0;
}

这段代码编译运行都没问题,错误有点儿多,标不出来了,可以自己对比一下,顺便说一下,可以不用pow(),因为其参数和返回值为double型,容易出问题。
#include <iostream>
#include <math.h>
using namespace std;

void Bubblesort (int a[],int size) {
int t;
for(int i=0;i<size;i++){
for(int j=0;j<size-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+