作者在 2011-10-24 10:10:17 发布以下内容
所谓降序数,就是诸如9652、321、8531的数,它们的特点是各个位上的数按从左到右递减排列。
下面的小程序即用于判断一个整数(题中假设是正数)是否为降序数:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int m[100], n, i, j;
puts("请输入一个正整数:");
scanf("%d",&n);//为便于分析,假设n=321
for (i=0; n!=0 ; i++)
{
m[i] = n%10; //几次循环下来,赋值结果为:
n=n/10; //i=0 m[0]=1 n=32; i=1 m[1]=2 n=3; i=2 m[2]=3 n=0---->i=3时循环结束
}
for (j=0; (j<i-1 )&& (m[j]<m[j+1]); j++) ; //m[j]<m[j+1]是依次从低位到次低位的比较
if (j==i-1)
puts("是降序数!");
else
puts("不是降序数!");
system("pause");
return 0;
}
#include<stdlib.h>
int main()
{
int m[100], n, i, j;
puts("请输入一个正整数:");
scanf("%d",&n);//为便于分析,假设n=321
for (i=0; n!=0 ; i++)
{
m[i] = n%10; //几次循环下来,赋值结果为:
n=n/10; //i=0 m[0]=1 n=32; i=1 m[1]=2 n=3; i=2 m[2]=3 n=0---->i=3时循环结束
}
for (j=0; (j<i-1 )&& (m[j]<m[j+1]); j++) ; //m[j]<m[j+1]是依次从低位到次低位的比较
if (j==i-1)
puts("是降序数!");
else
puts("不是降序数!");
system("pause");
return 0;
}
如果像此类333,332,322的数也属降序数,把最后一个for循环中的 m[j]<m[j+1] 改为m[j]<=m[j+1]
即可。