第三道c语言编程题目,没有思路
展开全部
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char a[10],t;
int d,l,i,j;
scanf("%d",&d);
sprintf(a,"%d",d);
l=strlen(a);
for(i=0;i<l;i++){
for(j=0;j<l-i;j++){
if(a[j]<a[j+1]){
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("%d",atoi(a));
return 0;
}
#include <string.h>
#include <stdlib.h>
int main(){
char a[10],t;
int d,l,i,j;
scanf("%d",&d);
sprintf(a,"%d",d);
l=strlen(a);
for(i=0;i<l;i++){
for(j=0;j<l-i;j++){
if(a[j]<a[j+1]){
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
printf("%d",atoi(a));
return 0;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把每一位上的数字独立出来,比较大小排序后,再还原位数
————————
下面是代码
#include <stdio.h>
#include <stdlib.h>
void printopp(long int n)
{
int s=0;
int sum = numlength(n);
int a[sum];
while(n)
{
a[s++]=n%10;
printf("%ld\n",n%10);
n=n/10;
}
int i,k,temp;
for(k=0;k<sum;k++)
{
for(i=k+1;i<sum;i++)
if(a[k]<a[i])
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
int max = 0;
for(k=0;k<sum;k++)
{
max = max*10+a[k];
}
printf("max =%d\n",max);
}
int numlength(long int num)
{
int sum=0;
while(num)
{
sum++;
num/=10;
}
printf("%d",sum);
return sum;
}
int main()
{
long int n; scanf("%ld",&n);
if(n==0)return 0;
printopp(n);
printf("\n");
system("pause");
return 0;
}
————————
下面是代码
#include <stdio.h>
#include <stdlib.h>
void printopp(long int n)
{
int s=0;
int sum = numlength(n);
int a[sum];
while(n)
{
a[s++]=n%10;
printf("%ld\n",n%10);
n=n/10;
}
int i,k,temp;
for(k=0;k<sum;k++)
{
for(i=k+1;i<sum;i++)
if(a[k]<a[i])
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
int max = 0;
for(k=0;k<sum;k++)
{
max = max*10+a[k];
}
printf("max =%d\n",max);
}
int numlength(long int num)
{
int sum=0;
while(num)
{
sum++;
num/=10;
}
printf("%d",sum);
return sum;
}
int main()
{
long int n; scanf("%ld",&n);
if(n==0)return 0;
printopp(n);
printf("\n");
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把每一位上的数字独立出来,比较大小,再还原位数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询