精华内容
下载资源
问答
  • 给一个不多于5位正整数, 求它是几数,二、逆序打印出各位数字。 这算法实现虽然实现了这功能,但健壮,当输入字符是,会出现异常。
  • 给一个不多于5位正整数 要求

    千次阅读 2021-05-22 11:40:55
    一个不多于5位数的正整数;(1)求出它是几数;(2)分别输出每一位数字;(3)按逆顺序输出各位数,例如原有数为123,应输出321以下是此题的【c源代码】,需要C++源代码的请点击进入#include #include int main(){...

    给出一个不多于5位数的正整数;

    (1)求出它是几位数;

    (2)分别输出每一位数字;

    (3)按逆顺序输出各位数,例如原有数为123,应输出321

    以下是此题的【c源代码】,需要C++源代码的请点击进入

    #include

    #include

    int main()

    {

    int num,indiv,ten,hundred,thousand,ten_thousand,place;      //分别代表个位,十位,百位,千位,万位和位数

    printf("请输入一个整数(0-99999):");

    scanf("%d",&num);

    if (num>9999)

    place=5;

    else  if (num>999)

    place=4;

    else  if (num>99)

    place=3;

    else  if (num>9)

    place=2;

    else place=1;

    printf("位数:%d\n",place);

    printf("每位数字为:");

    ten_thousand=num/10000;

    thousand=(int)(num-ten_thousand*10000)/1000;

    hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;

    ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;

    indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);

    switch(place)

    {case 5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);

    printf("\n反序数字为:");

    printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);

    break;

    case 4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);

    printf("\n反序数字为:");

    printf("%d%d%d%d\n",indiv,ten,hundred,thousand);

    break;

    case 3:printf("%d,%d,%d",hundred,ten,indiv);

    printf("\n反序数字为:");

    printf("%d%d%d\n",indiv,ten,hundred);

    break;

    case 2:printf("%d,%d",ten,indiv);

    printf("\n反序数字为:");

    printf("%d%d\n",indiv,ten);

    break;

    case 1:printf("%d",indiv);

    printf("\n反序数字为:");

    printf("%d\n",indiv);

    break;

    }

    return 0;

    }

    展开全文
  • 2016-01-09 回答呵呵,是谭浩强版.../*不多于5为的正整数,(1)求它是几位数,(2)分别打印出每位数字,(3)按逆序打印出个位数字。*/#include <stdio.h>void main(){int num;int a,b,c,d,e,n; /*分别代...

    2016-01-09 回答

    呵呵,是谭浩强版的c语言程序设计课后习题吧。我有那本书的课后题答案,不过是pdf格式的。以下是我辛辛苦苦打出来的,希望对你有所帮助。

    /*给出一个不多于5为的正整数,(1)求它是几位数,(2)分别打印出每位数字,(3)按逆序打印出个位数字。*/

    #include <stdio.h>

    void main()

    {

    int num;

    int a,b,c,d,e,n; /*分别代表各位、十位、百位、千位、万位和位数*/

    printf("请输入一个整数(0-99999):");

    scanf("%d",&num);

    if(num>9999) n=5;

    else if(num>999) n=4;

    else if(num>99) n=3;

    else if(num>9) n=2;

    else n=1;

    printf("这是一个 %d 位的整数\

    ",n);

    printf("每位数字为:");

    e=num/10000;

    d=(num-e*10000)/1000;

    c=(num-e*10000-d*1000)/100;

    b=(num-e*10000-d*1000-c*100)/10;

    a=num-e*10000-d*1000-c*100-b*10;

    switch(n)

    {

    case 5:

    {

    printf("%d,%d,%d,%d,%d\

    ",e,d,c,b,a);

    printf("反序数字为:");

    printf("%d%d%d%dl%d\

    ",a,b,c,d,e);

    }break;

    case 4:

    {

    printf("%d,%d,%d,%d\

    ",d,c,b,a);

    printf("反序数字为:");

    printf("%d%d%d%d\

    ",a,b,c,d);

    }break;

    case 3:

    {

    printf("%d,%d,%d\

    ",c,b,a);

    printf("反序数字为:");

    printf("%d%d%d\

    ",a,b,c);

    }break;

    case 2:

    {

    printf("%d,%d\

    ",b,a);

    printf("反序数字为:");

    printf("%d%d\

    ",a,b);

    }break;

    case 1:

    {

    printf("%d\

    ",e);

    printf("反序数字为:");

    printf("%d\

    ",a);

    }break;

    }

    }

    展开全文
  • 应该有一个,最好只有一个,明显能做到这一点 Although that way may not be obvious at first unless you’re Dutch.虽然这种 方式可能容易,除非你是python之父 Now is better than never. 现在做总比做好 ...

    Beautiful is better than ugly. 优美胜于丑陋

    Explicit is better than implicit. 明了胜于晦涩

    Simple is better than complex. 简单胜过复杂

    Complex is better than complicated. 复杂胜过凌乱

    Flat is better than nested.      扁平胜于嵌套

    Sparse is better than dense.      间隔胜于紧凑

    Readability counts.           可读性很重要

    Special cases aren’t special enough to break the rules.

    即使假借特例的实用性之名,也不违背这些规则

    Although practicality beats purity.   虽然实用性次于纯度

    Errors should never pass silently.    错误不应该被无声的忽略

    Unless explicitly silenced.        除非明确的沉默

    In the face of ambiguity, refuse the temptation to guess.

    当存在多种可能时,不要尝试去猜测

    There should be one-- and preferably only one --obvious way to do it.

    应该有一个,最好只有一个,明显能做到这一点

    Although that way may not be obvious at first unless you’re Dutch.虽然这种

    方式可能不容易,除非你是python之父

    Now is better than never. 现在做总比不做好

    Although never is often better than right now. 虽然过去从未比现在好

    If the implementation is hard to explain, it’s a bad idea.

    如果这个实现不容易解释,那么它肯定是坏主意

    If the implementation is easy to explain, it may be a good idea.

    如果这个实现容易解释,那么它很可能是个好主意

    Namespaces are one honking great idea – let’s do more of those!

    命名空间是一种绝妙的理念,应当多加利用

    这就是 Python 之禅,Guido van Rossum一定是个有趣的人,能将设计思想展现在python解释器中,在“hello

    world”程序开始之前,它还有一番人生哲学啊

    展开全文
  • 给一个不多于5位正整数要求 1、求出它是几数 2、分别输出每一位数 3、按逆序输出各位数字,例如原数321,应输出123 代码如下:开头的宏定义是忽略scanf带来的编译通过的问题,加开头的宏定义也可以,将...

    给一个不多于5位的正整数,要求

    1、求出它是几位数
    2、分别输出每一位数
    3、按逆序输出各位数字,例如原数321,应输出123

    代码如下:开头的宏定义是忽略scanf带来的编译不通过的问题,不加开头的宏定义也可以,将scanf换成scanf_s即可

    #define _CRT_SECURE_NO_WARNINGS 0
    #include<stdio.h>
    #include<math.h>
    
    int number_bit(int a)//得到它是几位数的函数
    {
    	int i = 0;
    	int j = 0;
    	for (i = 1; i <= 5; i++)//直接循环,调用pow函数,得到10的几次方
    	{
    		j = pow(10, i);
    		if ((a / j) == 0)//当除10为0时,就知道它是几位数,比如23,当除100的时候为0,刚好10的平方为100
    		{
    			break;
    		}
    	}
    	return i;
    }
    void every_number(int a)//得到每一位数字的函数,也是调用pow函数
    {
    	for (int i = 5; i >= 0; i--)
    	{
    		int j = pow(10, i);
    		if (a / j == 0)//因为题目给的是不大于5位数的一个数,所以直接从10的5次方开始循环
    		{
    			continue;//如果这个数除的等于0,表示还除不尽,继续循环,比如23/100就等于0,还得不到最高位
    		}
    		int m = a / j;//定义m,得到最高位
    		int n = a % j;//定义n,得到余数的值,比如123/100=1余23,23又可以继续往下除,继续得到其它位数
    		a = n;//把所得到的余数赋值给a,然后循环继续得到其它位数
    		printf("%3d", m);
    	}
    }
    
    void reverse(int a)//这个是得到某数值的逆序数
    {
    	int k=number_bit(a);//这个得到该数是几位数,好循环几次
    	for (int i = 0; i <k; i++)
    	{
    		int m = a / 10;//得到最低位
    		int n = a % 10;//得到高位值
    		a = m;//高位值赋值给a,继续循环
    		printf("%3d", n);
    	}
    }
    
    int main()
    {	int a = 0;
    	printf("请输入一个不多于5位的整数:");
    	scanf("%d", &a);//这里得到要输入的数
    	if (a > 99999 || a < 0)//判断取值是否合法
    	{
    		printf("请重新输入正确的正整数\n");
    		return 0;
    	}
    	else
    	{
    		printf("它是%d位数\n", number_bit(a));//调用函数,得到它是几位数
    	}
    	printf("这个数的每一位数字是:");
    	every_number(a);//调用函数,得到这个数的每一位
    	printf("\n");
    	printf("逆序输出的数字是:");
    	reverse(a);//调用函数,得到这个数的逆序数
    	return 0;
    }
    代码片
    
    展开全文
  • 一个不多于5位数的正整数;(1)求出它是几数;(2)分别打印出每一位数字;(3)按逆顺序打印出各位数,例如原有数为123,应输出321以下是此题的【c++源代码】,需要此题C源代码的点击进入#include using namespace...
  • 给一个不多于5位正整数要求: (1)求出它是几数; (2)分别输出每一位数字; (3)按逆序输出各位数字,例如原数为123,应输出321; 2. 代码 #include &amp;amp;lt;stdio.h&amp;amp;gt; #...
  • 方法:作比较[root@python markPy]# cat five.py#!/usr/bin/python3a=int(input(">...100: #第一个条件已经过滤了大于9,所以这里区间是11到100print(2)elif a<1000:print(3)elif a<10000...
  • 1、求其是几数字,可以将这数字次丢掉一位数字,最后通过丢掉的次数就知道是几数字。 程序为: int Digit(int n) { int tmp=0; while(n!=0) { n/=10; tmp++; } return tmp; } 2、分别输出每一位...
  • printf("请输入一个不多于5位正整数:\n"); scanf("%ld",&x); if(x<0||x>99999) { printf("数据合法!!\n"); return 1; //退出程序 } n=0; xx=x; while(xx>0) { n++; xx/=10; }...
  • 题目:给一不多于5位的正整数要求: 1.求出它是几位数; 2.分别输出每位数字; 3.按逆序输出个位数字,例如原数为321,应输出123. #include <stdio.h> #include <stdlib.h> #define M 99999 #...
  • 一个不多于5位正整数

    千次阅读 2020-07-27 18:42:00
    一个不多于5位正整数 要求:(1)求出它是几数; (2)分别输出每一位数字 (3)按照逆序*/ #include <stdio.h> #include <string.h> int main(){ char str[50]; scanf("%s",str); int i=0,count=0;...
  • ①核心思想:进入一个从0开始的循环,让这个正整数依次对10取余,所得余数再对10取余,直到余数为0,循环结束,循环次数就是该正整数的位数 ②代码如下: int GetFigures(int n) { int count = 0; do { ...
  • 给一个不多于5位正整数,要求: ①求出它是几数; ②分别输出每一位数字; ③按逆序输出各位数字,例如原数为321,应输出123。 首先贴出自己写的代码 #include<stdio.h> #include<math.h> void fun(int a...
  • 今天为大家分享一个Java的经典实例给一个不多于5位正整数要求:求出它是几数,逆序打印出各位数字。接下来吾爱编程就为大家介绍一下程序的写法,有需要的小伙伴可以参考一下:1、程序需求:给一个不多于5位的...
  • C语言 给一个不多于5位正整数

    万次阅读 2018-11-20 18:05:25
    2.分别输出每一位数字 3.逆序输出数字 #include&amp;amp;lt;stdio.h&amp;amp;gt; int main() { int a,ww,qw,bw,sw,gw; printf(&amp;quot;ÇëÊäÈëÒ»¸ö²»¶àÓÚ5λµÄÕýÕûÊ...
  • 题目:给一个不多于5位正整数要求它是几数,逆序打印各位数字 import java.util.Scanner; public class java29nixushu {//给一个不多于5位正整数要求它是几数,逆序打印各位数字 public static void...
  • 1、求一个整数的位数 2、分别输出每一位数字 3、逆序输出 //1. #include&amp;lt;stdio.h&amp;gt; int count(int n) { int tmp; for(tmp=1;n&amp;gt;1;tmp++) { n/=10; } return tmp; } ...
  • #include&lt;stdio.h&gt;...请输出一个整数(0-99999)");  scanf("%d",&amp;num);  if(num&gt;9999)  n=5;  else  if(num&gt;999)  n=4;  else   ...
  • x = input('Input a number:') a = x//10000 ... print('位数:' + str(e) + str(d) + str(c) + str(b) + str(a)) elif b!= 0: print('四位数:' + str(e) + str(d) + str(c) + str(b)) elif c!= 0:
  • 给一个不多于5位数的正整数要求,求它是几数,逆序打印出各位数字。 n = int(input("请输入:")) l = [] while n != 0: i = n % 10 # 求余数 n = n // 10 # 求取整之后剩下的数字 l.append(i) # 把相应的...
  • 满意答案sxd834504782013.04.08采纳率:46%等级:13已帮助:6136人动你怎么逆顺序,2种输出自己选一个吧。#include "stdio.h"void main(){unsigned long int a=0;int flag=0;int b[4];while(flag==0){printf(...
  • printf(“请输入不多于5位的正整数:”); scanf("%ld",&x); a=x/10000; /分解出万位/ b=x%10000/1000; /分解出千位/ c=x%1000/100; /分解出百位/ d=x%100/10; /分解出十位/ e=x%10; /分解出个位/ if (a!=0) ...
  • 分别求每位上的数字,关系如下: 求万位上的数:ten_thousand=num/10000; 求千位上的数:thousand=(num%10000)/1000; 求百位上的数:hundred=(num%1000)/100;...求个位上的数:indiv=num%10; ...
  • 方法:作比较a=int(input(">>>>"))if a<10:print(1)elif a<100: #第一个条件已经过滤了大于9,所以...10000:print(4)else:print(5)方法二:使用整除实现,除完后如果是0或不是0,这种方法...
  • 给一不多于5位的正整数要求: 1.求它是几位数 2。逆序打印出个位数字 */ public class Work08 { public static void main(String[] args) { //输入 Scanner s=new Scanner (System.in); String number=s....
  • 一个不多于五位正整数,求出它是几

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,598
精华内容 7,039
关键字:

给一个不多于5位的正整数要求