从键盘输入一个整数及其位数,分割成数组并且输出逆序数与降序数
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,N;
printf("请输入整数位数:");
scanf("%d",&N) ;
printf("\n");
printf("请输入一个不大于5位的整数:");
scanf("%d",&n);
int *arr = (int *)malloc(N * sizeof(int));
if(arr == NULL)
{
printf("内存分配失败。\n");
return -1;
}
int i,j,tmp;
for(i=N-1;i>=0;i--)
{
arr[i]=n%10;
n/=10;
}
for(i=0;i<N;i++)
{
printf("输出分割后的数为:%d\n ",arr[i]);
}
for(i=N-1;i>=0;i--)
{
printf("输出逆序数为:%d\n ",arr[i]);
}
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(arr[j]>arr[i])
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
for(i=0;i<N;i++)
{
printf("输出降序数为%d\n",arr[i]);
}
return 0;
}
示例如下
