C语言数位排序
- 格式:docx
- 大小:31.19 KB
- 文档页数:4
一、题目:数位排序
二、功能描述:
本程序的功能,就是要对一个整数的各个数位进行排序输出。
为统计整数的位数,输入一个不包括空格的由数字组成的整数,长度不超过五位。
统计这个整数的位数,然后按数序输出它的各个数字,再把这些数字进行逆排序并输出。
如输入:56439,输出:5位数5,6,4,3,9 ; 9,3,4,6,5
三、解决方案:
(1)统计整数的位数;
(2)将各个数位上的数字逆向排序并输出。
四、主要函数描述:
定义一个test头文件。
五、主要技术问题:
(1)为统计整数的位数,定义一个int数组存放所统计的整数位数。
(2)使用模运算提取整数的各个数位上的数字。
六、结论(实验心得):
编程非常需要耐心。
七、程序及结果:
#include"test.h"
void main()
{
int n,a;
int b[100],c[100];
scanf("%d",&n);
a=weishu(n);
printf("该整数有%d位数\n",a);
printf("顺序序列为\n");
zhuanhuan(n,a,b);
printf("逆序序列为\n");
nixu(b,c,a);
}
#include<stdio.h>
#include<math.h>
int weishu(int n)
{
int sum=0;
while(n)
{
sum++;
n=n/10;
}
return sum;
}
void zhuanhuan(int n,int a/*位数*/,int b[])
{
int i;
for(i=a-1;i>=0;i--)
{
b[i]=n%10;
n=n/10;
}
for(i=0;i<a;i++)
{
printf("%d, ",b[i]);
}
printf("\n");
}
void nixu(int b[],int c[],int a) {
int i=0,j=a-1;
for(i=0;i<a;i++)
{
c[i]=b[j];
j--;
}
for(i=0;i<a;i++) {
printf("%d, ",c[i]); }
printf("\n");
}。