C语言 判断给定自然数n是否为降序数

作者&投稿:蓟周 (若有异议请与网页底部的电邮联系)
c语言的一道题目:判断是否为降序数~

//这是c++的程序,不是c语言的,cin cout这是c++的。
#include
using namespace std;
int main()
{

int m[100], n, i, j;

cin >> n;

for (i=0;n; i++)

{

m[i] = n%10;
n= n/10;

}

for (j=0; j=m[j] ; j++) ; //这里有一个问题,就是444这样的数是吗?
//如果是,这就对了,如果不是,将m[j+1]>=m[j] 修改为 m[j+1]>m[j]

if ( j>=i-1)

cout<<"yes";

else

cout<<"no";

return 0;

}

按照你的要求编写的输入一个整数,判断该数是否为降序数的Java程序如下
import java.util.Scanner;public class JiangXuShu { public static boolean isJiangXuShu(int n){ int b=0; while(n>0){ int a=n%10; if(a>=b){ }else{ return false; } n=n/10; b=a; } return true; } public static void main(String[] args) { System.out.println("请输入一个大于等于10的正整数"); Scanner sc=new Scanner(System.in); int number=sc.nextInt(); if(number<10){ System.out.println("输入的整数小于10!"); return; } if(isJiangXuShu(number)==true) System.out.println(number+"是降序数!"); else System.out.println(number+"不是降序数!"); }}运行结果
请输入一个大于等于10的正整数321321是降序数!

思路:通过除10求余可以得到一个数的倒序,如果倒序是升序则自然数n就是降序。

参考代码:
#include<stdio.h> 
int fun(int n){
int t=-1,p;
while(n){
p=n%10;
if(t>p) return 0;
t=p;
n/=10;

}
return 1;
}
int main()
{
int n;
scanf("%d",&n); 
if(fun(n))
printf("%d为降序!
",n);
else
printf("%d为升序!
",n);
return 0;
}
/*
运行结果:
54321
54321为降序!
*/


#include<stdio.h>
void main()
{
int i,flag=1;
char number[20];
for(;;)
{
printf("请输入任意一个2位及2位以上的整数:\n");
gets(number);/*该整数是以字符型存放的,即字符的ascII码*/
if(number[1]=='\0')
{
printf("输入错误,请重新输入:\n");
flag=2;
}
else
for(i=0;(number[i+1])!='\0';i++)
{
if(number[i]<number[i+1])
{
flag=0;
break;
}
}

if(flag==0) printf("%s 不是降序数\n",number);
if(flag==1)printf("%s 是降序数\n",number);
flag=1;
}
}

#include<stdio.h>
void main()
{
int i,flag;
char num[20]; /*该整数是以字符型存放的*/
printf("input a number:\n");
gets(num);
for(i=0;num[i]!='\0';)
i++;
if((i-1)<2)
printf("num是一位数,无法判断\n");
else
{for(i=0;num[i]!='\0';i++)
if(num[i]<num[i+1])
flag=0;
if(flag==0) printf("%s 不是降序数\n",num);
else printf("%s 是降序数\n",num);
}
}

//---------------------------------------------------------------------------

#include <stdio.h>
int main(int argc,char *argv[])
{
int i,z,a,b;
scanf("%d",&i);
z=i;
while (i)
{
a=i%10;
i/=10;
b=i?i%10:a;
i/=10;
if (a>b)break;
}
if (a<=b) printf("%d是降序数\n",z);
else printf("%d不是降序数\n",z);
return 0;
}

//---------------------------------------------------------------------------


茄子河区13296335401: C语言 判断给定自然数n是否为降序数 -
竹审活血: #include<stdio.h> void main() { int i,flag=1; char number[20]; for(;;) { printf("请输入任意一个2位及2位以上的整数:\n"); gets(number);/*该整数是以字符型存放的,即字符的ascII码*/ if(number[1]=='\0'){ printf("输入错误,请重新输入:\n...

茄子河区13296335401: c语言的一道题目:判断是否为降序数 -
竹审活血: //这是c++的程序,不是c语言的,cin cout这是c++的.#include using namespace std; int main() { int m[100], n, i, j; cin >> n; for (i=0;n; i++) { m[i] = n%10; n= n/10; } for (j=0; j=m[j] ; j++) ; //这里有一个问题,就是444这样的数是吗? //如果是,这就对了,如果不是,将m[j+1]>=m[j] 修改为 m[j+1]>m[j] if ( j>=i-1) cout else cout return 0; }

茄子河区13296335401: c++编程中判断一个数是否是降序数怎么做 -
竹审活血: #include<iostream> using namespace std; bool func(int n)//n为正整数 {int a = n%10;int b = n/10;while(b%10>a)//判断高位是否比低位大 ,直到高位小于低位为止{a = b%10;b = b/10; }if(b == 0)//如果最高位全是0,那么该数为降序数...

茄子河区13296335401: c++编程判断一个数是否是降序数怎么做 -
竹审活血: 思路: 1. 将各位上数字提取出来2. 判断高位不能小于下一位 程序: #includevoid main() { int x,n=0,s=0,w1,w2,x1; scanf("%d",&x); x1=x; w1=x%10; x/=10; while ( x ) { w2=x%10; x/=10; if ( w2 w1=w2; } if ( s ) printf("%d不是降序数.\n",x1); else printf("%d是降序数.\n",x1); }

茄子河区13296335401: c语言编程,判断一个长度为n的整型数组是否有序.升序返回1,降序返回 - 1,无序返回0,若所有元素 -
竹审活血: //刚写的code,测试通过 #include<stdio.h> #define N 4 int check_order(int *tar, int n){int i;i = 1;if(tar[0] == tar[1]){while(i<n&&tar[i] == tar[i-1])i++;if(i == n)return 2;}i=1;if(tar[0] > tar[1]){while(i<n&&tar[i-1] >tar[i])i++;if(i == n)return -1;}i=...

茄子河区13296335401: 怎么用c语言编 - 输入自然数,然后逆顺序输出,如输入123,输出321 -
竹审活血: #include<stdio.h> #include<string.h> main() { int a[256],i; scanf("%s",a); //输入自然数数组 for(i=strlen(a);i>=0;i--) //循环判断输出(从最后一个开始) printf("%d",a[i]); }

茄子河区13296335401: c语言中判断每个数从高位到低位个位数字是否按照从小到大的顺序排列 -
竹审活血: #include<stdio.h> int funl(int m);//___________ void main() { int n; while(funl(n)) printf("%d中各位数字按从小到大排列\n",n); } int funl(int m/*__________*/) { int k; k= m%10;//_________ while(m) if( m/10%10>k) return 0; else { m/= 10;//________...

茄子河区13296335401: c语言输入一个正整数n,再输入n个整数,降序输出
竹审活血: #include &lt;stdio.h&gt;main(){ int i,j,N,t,k=0;int score[100];printf("请输入整数的个数N:\n"); scanf("%d",&amp;N); printf("请输入N个整数:\n"); for(i=0;i&lt;N;i++)scanf("%d",&amp;score[i]); for(j=0;j&lt;N-1;j++) for(k=j+1;k&lt;=N-1;k+...

茄子河区13296335401: C语言技术论坛 -
竹审活血: #include#include int isok(int n) /*判断n是不是一个数的三次方*/{ int i; int j=sqrt(n); for(i=1;i<=j;i++) if(n==(i*i*i)) return i; return 0;} int mai...

茄子河区13296335401: C语言,给一个数列降序排列 -
竹审活血: for (j=i+1;i<5;j++) 这句第二个条件应为 j < 5;

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网