c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行排序由小到大输

2025-03-23 19:13:54
推荐回答(3个)
回答1:

#include

int weishu(long n,int a[])

{int i=0;

 while(n)

 {

a[i++]=n%10;

n/=10;

 }

 return i;

}

void main (void)

{

 long n;   

 int k,i,j,t,a[20];

 scanf("%ld",&n);

 printf("原数:%ld\n",n);

 k=weishu(n,a);

 printf("位数:%d\n",k);

 for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

printf("从小到大:");

for(i=0;i

  printf("%d",a[i]);

printf("\n从大到小:");

for(i=k-1;i>=0;i--)

  printf("%d",a[i]);

printf("\n");

getch();

}

回答2:

#include 
void out_put( int *a, int n)
{
int i;
printf("逆序: ");
for( i=0;i printf("%d", *(a+i) );
printf("\n");
}
int main()
{
int i,n,x;
int a[20];
scanf("%d", &n );
x=n;
i=0;
while( x )
{
a[i++] = x%10 ;
x /= 10 ;
}
printf("原数:%d 位数:%d\n", n, i );
out_put( a,i );
return 0;
}

回答3:

这个题就是两个题目的组合!将数字逆置然后用数组储存数据排个序就完了!