C语言里输入一个正整数,如何让它逆序输出?

作者&投稿:达味 (若有异议请与网页底部的电邮联系)
c语言中如何实现输入一个整数实现倒序输出~

1、新建一个工程和.c文件,输入头文件和主函数

2、声明被调用的函数,定义变量类型

3、输入整数

4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号

5、调用一个函数

6、定义函数的返回类型和形参类型

7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句

8、通过再次调用子函数一次输出高位的数

9、编译执行即可

#include
int main()
{
int num;
scanf("%d",&num);
int a,i;
for(i = 0;num > 0;i++)
{
a = num % 10;
printf("%d",a);
num = num/10;
}
return 0;
}

分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写。
a = num % 10
就是输出数字的最后一位
然后除10剔除数字最后一位,这样数字倒数第二位就会输出。以此类推,就能逆序输出数字。
拓展资料
for循环是编程语言中一种开界的循环语句,而循环语句由循环体及循环的终止条件两部分组成,for循环其在各种编程语言中的实现与表达有所出入,但基本为以C语言和pascal语言代表的两种形式。
C语言中的for循环如下
1.语句最简形式为:
for( ; ; )
2.一般形式为:
for(单次表达式;条件表达式;末尾循环体)
{
中间循环体;
}

int main()

{

int i=12345; //定义一个12345的整数

int temp=0;//temp作为存储的值

while(i!=0){

temp = temp*10 + i%10;

i/=10;  

}  //反序取出来

printf("%d",temp); //打印

return 0;

}

扩展资料:

反之正序输出

输入 : 12345

输出 :"12345"

char str(int x)

{

char a[100];//存放整数转换过来的字符

int i;   //计数

if(x/10!=0)

str(x/10);

if(x>=0)

a[i]='0'+x%10;  //整数转换成字符存储,字符都是以整数形式存储

else

a[i]='0'+(-x)%10;//整形包括负数

printf("%c",a[i++]);

}

int main()

{

int i;

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

scanf("%d",&i);

str(i);

return 0;

}



可以通过数组保存正整数的从最低位到最高位的每一位数值,之后输出数组元素即可。


具体实现方法可以参考如下程序:

#include<stdio.h>
void main()
{
    int num, a[10], i, k=0;
    printf("请输入一个正整数:");
    scanf("%d", &num);
    // 分离正整数的每一位,并存放到数组a中
    while(num>0)
    {
        a[k++] = num%10;  // 将正整数的最低位保存到数组a中
        num /= 10;        // 将正整数的次低位变为最低位
    }
    // 输出数组的每个元素,即实现逆序输出正整数
    for(i=0; i<k; i++)
        printf("%d", a[i]);
}


假设输入的数为n,逆序输出的是converse用以下循环就可以了
for(i=n;i>0;)
{
m=i%10;
i/=10;
converse=m+converse*10;
}
具体代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,m,converse;
scanf("%d",&n);
i=n;converse=0;
while(i>0)
{
m=i%10;
i/=10;
converse=m+converse*10;
}
printf("%d",converse);

}

#include <stdio.h>
main()
{
int i,j;
scanf("%d",&i);
j=i%10;
printf("%d",j);
while(j>0)
{
i/=10;
j=i%10;
printf("%d",j);
}
}

#include<stdio.h>
void main()
{int a,b;
scanf("%d",&a);
b=a%10;
printf("%d ",b);
a=a/10;
printf("\n");
}


C语言:编写程序从键盘输入不定数量的正整数?
下面我的代码是用方法二写的:include <stdio.h> include <malloc.h> int input(int **nsp);\/\/输入任意个整数,忽略负数,输入0结束,成功返回数组长度,失败返回-1 int main(){ int i,len,sum=0,*nums=NULL;len=input(&nums);printf("输入的正整数为:\\n");for(i=0;i<len;printf("...

c语言编写程序,输入一个不多于3位的正整数,要求,求出它有几位数,并逆 ...
include <stdio.h>int main(){char a[3]={0,0,0};int i,num=0,cnt=0;printf("input:");scanf("%d",&num);if(num>999) printf("input data must:0~999\\n");a[0] = (num\/100)%10;\/\/百位a[1] = (num\/10)%10; \/\/十位a[2] = num%10; \/\/个位 if(a[0]>...

c语言由键盘给定一个正整数N,编程实现求该整数对应的二进制数中1的个...
include<stdlib.h> include<stdio.h> int count1InNum(int num){ int result=0;while(num!=0){ num &=(num-1);result++;} return result;} \/\/此方法如果num为负数,比如-7,则求的1的个数实际是7的二进制形式中1的个数 int count(int num){ int result=0;while(num!=0){ if(...

C#语言编写代码,将一个10进制正整数转换成2进制字符串。
using System;using System.Collections.Generic;using System.Text;namespace Test { class Program { static void decToBin(int n){ if (n != 0){ decToBin(n \/ 2);Console.Write(n % 2);} } static void Main(string[] args){ int num;Console.Write("请输入一个正整数:");num = ...

输入一个正整数n输出一个0到n—1之间的随机数的c语言编程
include <stdlib.h>int my_rand() { int res=0, n; printf("input n:"); if(scanf(&n)==1) { res=rand()%n; } return res;}

如何用C语言实现输入1个5位以内的正整数 分别输出每位数
方法1:main( ){ long a,b,c,d,e,x;scanf("%ld",&x);a=x\/10000;\/*分解出万位*\/ b=x%10000\/1000;\/*分解出千位*\/ c=x%1000\/100;\/*分解出百位*\/ d=x%100\/10;\/*分解出十位*\/ e=x%10;\/*分解出个位*\/ if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld ",e,d...

C语言,从键盘输入一个三位正整数,如果各位数字之和等于10,则输出yes...
; b=a%10;\/\/ 个位上的数值 c=a%100\/10;\/\/十位上的数值 d=a\/100;\/\/百位上的数值 e=b+c+d; printf("%d %d %d\\n",b,c,d); if(e==10) printf("yes\\n"); else printf("no\\n");} 输出 input the number1455 4 1yes ...

...语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90=2*...
namespace ConsoleApplication1 { class Program { static void Main(string[] args){ int intnum = 90;\/\/输入的数字 bool bol = true;\/\/while循环的条件 int[] intaa = new int[intnum];\/\/存储分解的质因数 int arrayIndex = 0;\/\/intaa的索引 bool bol1 = true;\/\/判断是否循环完毕...

C语言问题 输入一个不多于5位的正整数,要求如下结果
并退出程序。else printf("place=4");} else printf("place=3");} else printf("place=2");} else printf("place=1");printf("\\n%c %c %c %c %c",a,b,c,d,e);printf("\\n%c%c%c%c%c\\n",e,d,c,b,a);} } 运行该程序输入123输出如图:如有问题,请追问~!

C语言5.11 题目描述 给定一个不多于5位的正整数,要求: 1、 求出它是...
1、 求出它是几位数;include <stdio.h> int main(){ int n;printf("请输入一个正整数:");scanf("%d",&n);if(n<=0){ printf("输入错误!\\n");} else { if((n\/10000)!=0){ printf("5\\n");} else if((n\/1000)!=0){ printf("4\\n");} else if((n\/100)!=0){...

大埔县14734088242: C语言编写程序将输入的一个正整数以相反的顺序输出例如输入1234输出4321,请附每行讲解 -
林蚂消痔: #include<stdio.h> int main() { int i,j,a[10],b; scanf("%d",&b); for(i=0;b!=0;i++) { a[i]=b%10; b=b/10; } //将数字的每一位存到数组里 for(j=0;j<i;j++) printf("%d",a[j]); //将数组里的数逆序输出 return 0; }

大埔县14734088242: c语言中如何实现输入一个整数实现倒序输出 -
林蚂消痔: 定义一个整数类型的输入,然后让它正序输出,倒序输出相信是很多C语言初学入门一定会遇到的经典题目,下面就是我对整数的正序和倒序输出一点小小的总结. 1. 反序(倒序)输出 反序输出常用的思路就是按位取余,把取出来的值进行循环...

大埔县14734088242: 将一个正整数逆序输出(C语言 -
林蚂消痔: #includeintmain(){intnum;scanf("%d",&num);inta,i;for(i=0;num>0;i++){a=num%10;printf("%d",a);num=num/10;}return0;}分析:首先,输入的是一个整数,因此最前面一位数不是零,所以我们可以用除10取余法写.a=num%10就是输出数字...

大埔县14734088242: c语言中怎么输出一个正整数的逆序数呢? -
林蚂消痔: 1 2 3 4 5 6 7 8 9 10 11#include "stdio.h" intrevint(intx){inty;for(y=0;x;(y*=10)+=x%10,x/=10);returny; } intmain(intargv,char*argc[]){intn=12345678;printf("%d --> %d\n",n,revint(n));return0; } 运行结果:

大埔县14734088242: c语言:将递归的方法将一个正整数逆序输出 -
林蚂消痔: 可以参考下面的代码: #include <stdio.h> #include <stdlib.h> void print_order_number(unsigned number) { printf("%d",number%10);fflush(NULL); if ( number >= 10 ) { print_order_number(number/10); } } int main(int argc, char**argv) { if ( argc !...

大埔县14734088242: c语言 关于正整数逆向输出 -
林蚂消痔: 首先,很欣赏你的要求;然后我来讲讲我的思路,仅供参考: 思路(一):直接用int类型做,判断位数时,当然用循环从小到大循环,用"%"(模)的方式判断;你的第二第三个问题一起做比较好,用求模和整除的方式分割这个数,然后把分割的每一位数累加到另一个int类型上. 思路(二):用字符串做,用库函数strlen很容易判断位数,也很容易输出每位数,以及倒序;其实倒序更容易,只要倒着输出就行,不一定要重新放到另一个字符串中. 思路(三):用递归函数做,用一个int作为计数,一个char类型的用来逐个放置,控制好结束条件,即输入“\n”时结束,然后自然容易做到那3点. 其实,以上逆序的方法都可以换成对称的思路……

大埔县14734088242: C语言程序设计:编写程序将输入的一个正整数以相反的顺序输出.例如输入1234,输出4321 -
林蚂消痔: #include <stdio.h>int main(int argc,char *argv[]){ int a; int i,num; printf("请输入数字:"); scanf("%d",&a);printf("\n输出结果为:"); for(;;) { num=a%10; a=a/10; printf("%d",num); if (a<10) { printf("%d",a);break; } } printf("\n");}

大埔县14734088242: 用C语言编程中输入一个正整数,把数字前后颠倒并输入颠倒后的结果,怎样操作? -
林蚂消痔: 用字符串处理很简单 #include <stdio.h> #include <string.h> void main () {int n,i;char s[20];scanf("%d", &n);sprintf(s,"%d", n);printf("%d\n",strlen(s));for(i=strlen(s)-1;i>=0;i--){printf("%c",s[i]);}printf("\n"); }如果要用循环也可以...

大埔县14734088242: 如何用C语言编写一个程序,输入任意输入一个正整数,反序输出每一位 -
林蚂消痔: #include <stdio.h> int main() {int n;scanf("%d", &n);do{printf("%d", n % 10);}while(n /= 10);printf("\n");return 0; }

大埔县14734088242: 输入一个正整数输出其反序数,c语言 -
林蚂消痔: #include<stdio.h> #include<stdlib.h> #include<string.h> void main(){ int ipnumber,i; char string[100]; printf("请输入要进行反序的正整数:"); scanf("%d",&ipnumber); itoa(ipnumber,string,10); i=strlen(string); printf("\n反序后的正整数为:...

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