C语言编程输入一个5位数以内的正整数,完成以下操作

<1>判断输入的数是一个几位数

这里利用一个简单的while循环即可实现

    while (x)
    {
        if (x / 10 != 0)
            suu++;
        x = x / 10;
    }
<2>按序或逆序输出其各位数字
首先使用数组将数字每一位取出存入数组
        for (i = 0; i <= suu; i++)
    {
        if (n == 1)
            a[suu] = n;
        a[i] = n % 10;
        n = n / 10;
    }

最后利用for循环语句将其正反输出即可

完整源代码如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,suu=1,x,i;
    int a[5];//数据最多五位
    printf("请输入一个五位以内的正整数\n");
    scanf("%d", &n);
    x = n;
    while (x)//判断位数
    {
        if (x / 10 != 0)
            suu++;
        x = x / 10;
    }
    printf("所输入的数字是一个%d位数\n", suu);
    for (i = 0; i <= suu; i++)//各位数存入
    {
        if (n == 1)
            a[suu] = n;
        a[i] = n % 10;
        n = n / 10;
    }
    printf("按序输出为:\n");
    for (i = suu-1; i >= 0; i--)//按序输出
        printf("%4d", a[i]);
    printf("\n按逆序输出为:\n");
    for (i = 0; i <= suu-1; i++)//按逆序输出
        printf("%4d", a[i]);
    printf("\n");
    system("pause");
    return 0;
}

原文地址:https://blog.51cto.com/14232799/2366663

时间: 2024-08-28 16:59:48

C语言编程输入一个5位数以内的正整数,完成以下操作的相关文章

【c语言】有一函数:x &lt; 0 ,y = -1;x = 0,y = 0;x &gt; 0,y = 1,编程输入一个x值,要求输出对应的y

// 有一函数:x < 0 ,y = -1;x = 0,y = 0;x > 0,y = 1,编程输入一个x值,要求输出对应的y #include <stdio.h> int main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x > 0) y = 1; else if(x < 0) y = -1; else y = 0; printf("对应的y值是:%d\

输入一个任意位数的的整数, 从个位开始输出每一位的数

题目要求: 输入一个任意位数的的整数, 从个位开始输出每一位的数,  每次输出的一位数可以用%10来取,然后通过把数除10去掉已输出的位 代码如下 #include <stdio.h> int main() { int number; scanf("%d",&number); while(number) { printf("%d ",number%10); number /= 10; } return 0; }

matlab_exercise(2)----输入一个三位数,依次输出其个位数字,十位数字,百位数字

第一次作业--第二题 输入一个三位数,依次输出其个位数字,十位数字,百位数字. 1 %第二题 2 %注意:将文件命名为math_2018_4_02_01.m 3 %先判断输入的是不是三位数 4 shuru ='请输入一个三位数'; 5 x=input(shuru) 6 7 if x>100&&x<=999; 8 alert=warndlg('输入正确'); 9 b=floor(x/100) 10 % b=fix(x/100)%向下取整 11 c=fix(mod(x,100)/1

C语言输入一个2-5位数,去除首位后剩的数!

#include <stdio.h>int main(){  int i;  do{   printf("请输入一个2-5位的数:");   scanf("%d",&i);   if(i>9&&i<=99)   printf("去掉首位后的余数为:%d\n",i%10);     else if(i>99&&i<=999)   printf("去掉首位后的余数为

输入一个三位数,把个位和百位对调后输出

Description 输入一个三位自然数,然后把这个数的百位数与个位数对调,输出对调后的数 Input 输入一行,只有一个整数x(100<=x<=999). Output 输出只有一行,包括1个整数. Sample Input 123 Sample Output 321 太水了... AC代码: 1 import java.util.Scanner; 2 3 public class Main { 4 public static void main(String[] args) { 5 Sc

【C语言】输入一个整数,输出该数二进制表示中1的个数(三种方法)

输入一个整数,输出该数二进制表示中1的个数.如输入32,输出1. 代码实现: 方法1:与运算 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> using namespace std; int FindOneNumber(unsigned int num) {     int numberofOne = 0;     while (num)     {         num = num & (num - 1);         

c语言:输入一个小于1000的正数,输出它的平方根,若不是小于1000的正数,重新输入

从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分).要求在输入数据后先对其进行检查是否为小于1000的正数.若不是,则要求重新输入. 解:程序: #include<stdio.h> #include<math.h> #define M 1000 int main() { int x,y; printf("请输入一个小于%d的正数x:",M); scanf("%d", &x); while(x&g

【c语言】输入一个递增排序的数组的一个旋转,输出旋转数组中的最小元素

//旋转数组的最小数字 //题目:把一个数组最開始的若干个元素搬到数组的末尾.我们称之为数组的旋转. //输入一个递增排序的数组的一个旋转.输出旋转数组中的最小元素. //比如:数组{3.4,5,1,2}为{1,2.3.4.5}的一个旋转,最小元素是1. #include <stdio.h> #include <assert.h> int min_equ(int *src, int left, int right) { int i = 0; int ret = src[left];

【c语言】 输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是不转换

// 输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是不转换 #include <stdio.h> int main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch >= 'A' && ch <= 'Z') ch = ch + 32; printf("转换成小写字母是:%c\n",ch); return 0; }