基于visual Studio2013解决C语言竞赛题之1051数的顺序

来源:互联网 发布:java验证码实现 编辑:程序博客网 时间:2024/05/23 15:37





题目


解决代码及点评

/*功能:自然数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