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

c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行排序由小到大输出转换后的数字,再输出逆序后的数字。(运用数组、函数,指针*)

#include <stdio.h>

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<k-1;i++)

for(j=0;j<k-1-i;j++)

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

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

printf("从小到大:");

for(i=0;i<k;i++)

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

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

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

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

printf("\n");

getch();

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-06
#include <stdio.h>
void out_put( int *a, int n)
{
int i;
printf("逆序: ");
for( i=0;i<n;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;
}

第2个回答  2015-01-06
这个题就是两个题目的组合!将数字逆置然后用数组储存数据排个序就完了!追问

哥能帮我写一下程序吗,小弟感恩不尽

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网