这个怎么写啊,能写一下代码吗????
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,a[100000],i=0,m,j,k,t,max=0;
printf("请输入一个十进制的正整数:");
scanf("%d",&n);
while(n!=0){
a[i]=n%10;
n/=10;
i++;
}
m=i-1;
for(i=0;i<m;i++){
for(j=0;j<m-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
k=1;
for(i=m;i>=0;i--){
if(a[i]%2==0){
max+=a[i]*k;
k*=10;
}
}
printf("拼成的最大值为");
printf("%d",max);
return 0;
}
请问你能否先写一个简单的程序, 把输入的数字打印出来?
然后大家讨论下一步怎么做
斗胆来回答一下,觉得可以用getchar()判断输入的是不是回车,回车就证明输入结束了,然后把每个数字判断是不是偶数,是偶数就存入数组,然后从大到小排序,组成最大的数
伪代码:(不能直接用)
char c, s[10];
int i = 0;
while( !strcmp( c = getchar(), '\n' ) )
{
if( (int) c % 2 != 0 ) break;
s[i] = c; i++;
}
对s[]进行排序后组合即可,隔壁家的小孩都馋哭了。
ps:编程还是建议多写写,看完代码很容易懂,难就难在从一点点思路到具体的做法,有个思路然后自己多试试,望采纳
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html