
题目
解决代码及点评
/* 功能:自然数N一般写成如下形式: N=d[k]d[k-1]d[1] (d[1]~d[k] 均是十进制数字) 如果d[i+1]>d[i] (i=k-1,k-2,...,1),则称N是严格降序数;如果d[i+1]<d[i] (i=k-1,k-2,...,1), 则称N是严格升序数;如果d[i+1]=d[i] (i=k-1,k-2,...,1),则称N是等序数;此外,则称N是无序数。 例如, 4321是严格降序数,1234是严格升序数,2222是等序数,1243是无序数。从键盘上输入一个大于9的整数N,判它属于上述哪一类。 时间:0:20 2013/10/26 */ #include<stdio.h> #include<stdlib.h> int getBit51(int); //判断一个数的位数 int judgIt(int a[],int n) { //a[]中的数为原数的逆序 int upNum=1; for(int i=0;i<n-1;i++) //a[]如果为升序,则原数逆序 { if(a[i]<=a[i+1])upNum=0; } int downNum=1; //如果a为降序,则原数升序 for (int i=0;i<n-1;i++) { if(a[i]>=a[i+1])downNum=0; } if(upNum==1) return 1; else if(downNum==1) return 2; else return 3; } void main() { int num; scanf_s("%d",&num); if (num<9) //判断num是否〉9 { puts("Cannot judges it!"); } else { int bit=getBit51(num); //获得位数 int a[10]={-1}; int t=num; //创建数组 for (int i=0;i<bit;i++) //将num每一位数逆序输入a[n]中。以-1结束 { a[i]=t%10; t/=10; } int flag=judgIt(a,bit); //1为降序数,2为升序数,3为其他 switch(flag) { case 1: printf("The number in ascending order"); break; case 2: printf("The number in descending order"); break; default: printf("This is a disorders number!"); break; } } system("pause"); } int getBit51(int n) { int bit=0; while (n>0) { bit++; n/=10; } return bit; }
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn