输入一个十进制的正整数,取出该数中的所有偶数数字,用这些数字行成一个最大的数

这个怎么写啊,能写一下代码吗????

#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