当前位置:首页 » 编程语言 » C语言反转整数

C语言反转整数

发布时间: 2022-10-03 02:51:26

A. c语言:短整型的低四位反转问题(输入输出看说明),咋编

  1. 题目肯定是在早期的C环境下,因为早期的int是16bit,所以才把8bit的数据叫“短整型”;以后int是32bit了,所以实际上题目是说把一个char型数据进行处理。

  2. 按照说明,这也不叫“反转”,应该叫按位取反;因为“反转”的意思是把1234二进制位倒过来,即若是1101则变成1011,而按此题则应输出0010。

代码文本:

#include "stdio.h"

int main(int argc,char *argv[]){

char ch;

printf("Please enter a letter... ");

if(scanf(" %c",&ch)==1 && (ch>='A' && ch<='Z' || ch>='a' && ch<='z'))

printf("0x%x ",ch^0x0F);

else

printf("Input error, exit... ");

return 0;

}

B. C语言反转数字的问题,拜托大神帮我看下我写的哪里不对

你不认为每一次从一个整数里取出一个数位上的数比较麻烦么?

难道不可以把一个数的个位取出来(划掉),记下这个数;再取出一个个位数(划掉),在刚才记下的数后面继续写第二个数……

#include<stdio.h>

intmain()
{
intn;
intsign,number;
intans;

scanf("%d",&n);
sign=n>0?1:-1;
number=n*sign;
ans=0;
while(number)
{
ans=ans*10+number%10;
number/=10;
}
ans*=sign;
printf("%d ",ans);
return0;
}

C. c语言:数字反转

#include<stdio.h>
intreverseInt(intn)
{
intr=0;
while(n)
{
r=r*10+n%10;
n/=10;
}
returnr;
}
intmain()
{
intn;
scanf("%d",&n);
printf("%d ",reverseInt(n));
return0;
}

示例运行结果:

-103040

-40301

D. 输入一个整数,讲各位数字反转后输出,如何用C语言编写

#include <stdio.h>
#include <conio.h>
int main()
{
int former,latter=0;
printf("请输入需要反转的整数:");
scanf("%d",&former);
do
{
latter*=10;
latter+=former%10;
former/=10;
}
while (former);
printf("反转后整数为:%d",latter);
getch();
}二楼的方法是从低到高获取每一位数字逐个输出,而我的这种方法是计算出反转之后的数据,然后再输出。

E. C语言数字反转,怎么循环的,能给出每一步的结果吗

要先理解方法,待翻转的数字都是整数

方法有很多种的,字符串,栈,队列等等都可以

这里采用的是最朴实的计算的方法

假设待翻转的数字是123456

那我们的目标数字是654321

怎么构造654321这个整型数字呢

正常思维应该是从两端开始考虑吧, 如果从1开始构造

我们要从123456这个数字中获取1

是不是很麻烦?

要是从6开始呢

直接除以10取余数, 也就是用123456 % 10 得到的不就是6么

然后是5 显然我们需要把6去掉 得到 12345

然后 12345 % 10 得到了5

依次类推啊

然后是构造654321 最开始是6 怎么把5加上去呢

6*10 +5

那如何开始循环呢?

考虑初始值是0 0*任何数都是0 然后加上初始数字就开始了啊

考虑到题主可能是初学者, 注意几个点

  1. While(a) 只要a大于0 都为真

  2. “ / ”得到的是最大整数商,余数部分不考虑

  3. “ % ”得到的仅仅是余数

    感受C语言的魅力吧

F. C语言编程题:数字颠倒问题

int Reverse(int Ix)

{

int n=0,i;

int Ix2=Ix;

while(1)

{

n++;

Ix2/=10;

if(Ix2==0)

break;

}

cout<<n<<endl;

for(i=0;Ix;Ix/=10)

i=i*10+Ix%10;

cout<<i<<endl;

}

G. 输入一个三位正整数,将它反向输出。用c语言编!

#include <stdio.h>

void main( )

{

int n,a,b,c;

scanf("%d",&n);

a=n/100;

b=(n/10)%10;

c=n%10;

printf(" 倒序输出结果:%d%d%d",c,b,a);

getch( );

}

(7)C语言反转整数扩展阅读

将三位正整数反向输出的其他方法:

#include<stdio.h>

#include<math.h>

int main( )

{

int a,b1,b2,b3 ;

scanf("%d",&a);

if(a<100||a>1000) return 0;

b1=a/100;

b2=a%100/10;

b3=a%10;

if(b3==0&&b2==0)printf("%d",b1);

else if

(b3==0)printf("%d%d",b2,b1);

else

printf("%d%d%d",b3,b2,b1);

return 0;

}

H. C语言 输入任意一个4位的整数,将其各位按相反次序重新组合成另一个整数输出

#include<stdio.h>

int main()

{

int n,a[11],k=0;

scanf("%d",&n);

while(n!=0)

{

a[k++]=n%10;//将各个为上的数提取出来,a[0]是个位,以此类推;

n/=10;

}

for(int i=0;i<k;i++)//逆序输出;

{

printf("%d",a[i]);

}

return 0;

}

十位以下都可以

I. c语言数字反转怎么做

代码有不懂的地方可以问,会回答的
#include<stdio.h>
#include<math.h>
intmain()
{
intN,temp,result=0;
scanf("%d",&N);
temp=abs(N);//取绝对值
while(temp%10==0&&temp!=0)//先把末尾的0都去掉
temp/=10;

do{
result=result*10+temp%10;//加入个位
temp/=10;//去掉个位
}while(temp!=0);

if(N<0)//如果是负数,结果也要为负数
result*=-1;
printf("%d ",result);
return0;
}

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:189
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:56
php全角半角 发布:2024-12-23 14:55:17 浏览:829
手机上传助手 发布:2024-12-23 14:55:14 浏览:733
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:831
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:711
vbox源码 发布:2024-12-23 14:41:32 浏览:279
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:661
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:420
php解析pdf 发布:2024-12-23 14:40:01 浏览:820