C++编程题:任意输入一个4位自然数,调用一个自定义函数输出该自然数的各数字组成的最大数。.

如题所述

#include<iostream.h> 

int main(void) 

int num; 

void Max(int n); 

cin>>num; 

Max(num); 

}; 

//自定义函数Max; 

void Max(int n) 

int i,j,k,temp,a[4]; 

for(i=0;i<4;i++) 

a[i]=n%10; 

n/=10; 

for(i=0;i<4;i++) 

k=i; 

for(j=i+1;j<4;j++) 

if(a[j]>a[i])k=j; 

if(k!=i) 

temp=a[i]; 

a[i]=a[k]; 

a[k]=temp; 

for(i=0;i<4;i++)cout<<a[i]; 

cout<<endl; 

};

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-13
#include<iostream.h>
int fun(int a,int b,int c,int d)
{
int max[4]={a,b,c,d};
int i,j,z,t;
for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
{
if(max[i]<max[j])
{
z=max[i];
max[i]=max[j];
max[j]=z;
}
}
}
t=1000*max[0]+100*max[1]+10*max[2]+max[3];
return t;
}
void main()
{
int num_1,num_2,num_3,num_4;
cout<<"请输入四个自然数:";
cin>>num_1>>num_2>>num_3>>num_4;
cout<<"你输入四个数组成的最大的数为:"<<fun(num_1,num_2,num_3,num_4)<<endl;
}
第2个回答  2009-05-13
1楼的好像不对吧?人家是要组成最大数不是要求和。
sum = a+b+c+d;
cout<<sum;
这两句话可以改为以下:
int a[]={a,b,c,d},t;
for(int i=0;i<4;i++)
for(int j=i+1;j<4;j++)
if(a[i]<a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(int k=0;k<4;k++)
cout<<a[k];

刚发现我也错了,因为题目要用函数……晕……2楼正解。
第3个回答  2009-05-13
#include"stdio.h"
void fun(int a)
{
int i,j,buf,x[4];
for (i=0;i<4;i++)
{
x[i]=a%10;
a/=10;
}
for (i=0;i<4;i++)
{
for (j=0;j<3;j++)
{
if (x[j]>x[j+1])
{
buf = x[j+1];
x[j+1] = x[j];
x[j] = buf;
}
}
printf("%d",x[3]);
x[3] = -1;
}
printf("\n");
}
void main()
{
int a;
scanf("%d",&a);
fun(a);
}
第4个回答  2009-05-13
给4个自然数从大到小排序,排好后为a,b,c,d;
则最大数为a*10000+b*1000+c*100+d;

C语言:任意输入一个自然数,输出该自然数的各位数字组成的最大数。例 ...
intmain(intargc,char**argv){ charch;intarr[10]={0};ﻩﻩ//存储各个数字出现的次数,初始化为0 //统计各个数字出现的次数 while(1){ ch=getchar();if(ch=='\n'){ break;} arr[ch-'0']++;} inti,j;//输出各个数字出现的次...

c++编程 例如输入5和3, 则输出1至5自然数中选择任意3个不同数字的所有...
include <stdio.h>int main(void){ int a; int s = 0;scanf("%d",&a);while(a){s = s+a%10;a = a\/10;}printf("%d\\n",s);}

c++中,输入一个任意自然数,怎么反向输出啊,如输入123456,输出654321
cout<

跪求c++计算24点的程序,要退学啦,求求啦..5555,帮帮小妹
计算24点:任意输入4位自然数,利用+、-、*、\/四则运算使之得到结果24。输出所有不同算法的计算表达式,可为运算优先级而使用括号。注意不要多次输出相同的计算表达式,例如:满足交换... 计算24点:任意输入4位自然数,利用 +、-、*、\/ 四则运算使之得到结果 24 。输出所有不同算法的计算表达式,可为运算优先级而...

c++问题:输出自然数1到n所有不重复的排列,即n的全排列。
using namespace std;int n;bool b[101];int a[101];void print(){ int i;for(i=1;i<=n;i++)cout<<a[i]<<" ";} void tryy(int n,int m){ int i;for(i=1;i<=n;i++){if(b[i]){a[m++]=i;b[i]=false;if(m==n)print();} else tryy(n,m+1);} } int ...

C++【类的设计】连续自然数和 【用类解题】
using namespace std;class Number { private:int begin;int end;int sum;public:Number(int M){ sum=M;} void solve();};void Number::solve(){ for(int i=1;i<=sum;i++){ int tem=0;for(begin=i;begin<=sum;begin++){ tem=tem+begin;if(tem==sum){ end=begin;break;} } i...

任意输入一个自然数(设不超过三位),判断是否自守数并输出
int j\/\/计算输入的数是几位的.string v_i=(string)i;(写法不一定对,只是表达意思)int result =i*i;\/\/计算 String v_result = \/\/获取result从个位到第j位的数字 if(判断)输出.当然可能有的方法不需要如此复杂,不过我目前水平就如此了.代码我就不完全贴出来了,程序主要要自己写,哪怕是一个...

c++编程:输入一个自然数n,求 ,同时统计结果中有多少个0。
计算函数可以写为:int Calc(int k){ int ss=0;int sum=0;while(k != 0){ ss = k%10;if(ss == 0)sum++;k = (k-ss)\/10;} return sum;} 当然,你也可以把我下面的代码全部copy一下,直接运行即可得结果,调试通过:include<iostream> using namespace std;int Calc(int k){ int...

c++函数编程实现自然数的十进制、二进制、八进制、十六进制转换_百度...
cout<<"输入一个整数:"; cin>>n;do { cout<<"输入需要转换的进制:2-9,16,32(输入0退出)";cin>>choice;switch(choice){ case 2: Transform(n,2); break;case 3: Transform(n,3); break;case 4: Transform(n,4); break;case 5: Transform(n,5); break;case 6: ...

C++任意输入n个自然数(n小于1000,每个数字之间空格隔开)然后按回车将...
1. "%d\\n" 这个输入格式串有问题,读入一个整数,并跳过一个回车号,可你输入的格式是什么?数字加空格,最后一个数才是数字加回车 2. 数字与回车的比较是搞笑的 a[i]是读入的整数,不是回车符 ,如果你输入整数 110 结果它值等于'n',可以提前结束输入了,'\\n'是回车,可是你并没有读入...

相似回答