小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

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






题目


解决代码及点评

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







posted on 2013-12-09 22:47  牛栏山1  阅读(122)  评论(0编辑  收藏  举报

导航