求编写一下这个C++程序,感激不尽

  给出一个四正整数 a ,请你编写一个程序完成下列任务:

  (1)、如果 a 是奇数,则输出“odd”,否则输出“Not a odd”。

  (2)、输出由 a 的各位数字组成的最大整数和最小整数

如输入:4012 输出:4210 124

第1个回答  2012-07-21
你好 具体实现如下:
#include<iostream>
using namespace std;
void odd(int a){//判断a是否是奇数的函数
if(a%2==0)
cout<<"Not an odd"<<endl;
else
cout<<"odd"<<endl;
}
void max_min_a(int a){//输出由a组成的最大、小四位正整数
int b[4];
for(int i=3;i>=0;i--){
b[i]=(a%10);
a/=10;
}
for(int i=0;i<4;i++)
for(int j=i;j<4;j++){
if(b[i]<b[j]){
int temp;
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
else
continue;
}
cout<<"the max of a is:";
for(int i=0;i<4;i++)
cout<<b[i];
cout<<endl;
cout<<"the min of a is:";
for(int i=3;i>=0;i--){
if(b[i]==0)
continue;
cout<<b[i];
}
cout<<endl;
}
void main()
{
int a;
cout<<"enter a:";
cin>>a;
odd(a);
max_min_a(a);
}
希望能帮助你哈本回答被提问者和网友采纳
第2个回答  2012-07-21
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a;
cin >> a;
if(a%2)
cout << "odd" << endl;
else
cout << "Not an odd" << endl;
char s[16];
sprintf(s,"%d",a);
sort(s,s+4);
cout << s << endl;
reverse(s,s+4);
cout << s;
}
第3个回答  2012-07-21
acm原题,哈哈,这个很easy
看你喜欢acm就不给你代码了
给你点思路吧
第一个把每一位存进一个整形数组 int num[4]里面
然后sort(num,num+4)
就可以得到最大
最小就反向就行了num[3]+...+num[0]*1000

第二个思路就是输入一个整数 比如int i=1024;
把它转换成字符串 利用isstringstream

第二个稍微比较麻烦一些
但是都行得通
2个方案都提交过全部通过
相似回答