c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行排序由小到大输
c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行排序由小到大输出转换后的数字,再输出逆序后的数字。(运用数组、函数,指针*)...
c语言作业:输入一个正整数求出它是几位数;输出原数和位数,对每一位进行排序由小到大输出转换后的数字,再输出逆序后的数字。(运用数组、函数,指针*)
展开
3个回答
展开全部
#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();
}
展开全部
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题就是两个题目的组合!将数字逆置然后用数组储存数据排个序就完了!
追问
哥能帮我写一下程序吗,小弟感恩不尽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询