C语言反转整数
A. c语言:短整型的低四位反转问题(输入输出看说明),咋编
题目肯定是在早期的C环境下,因为早期的int是16bit,所以才把8bit的数据叫“短整型”;以后int是32bit了,所以实际上题目是说把一个char型数据进行处理。
按照说明,这也不叫“反转”,应该叫按位取反;因为“反转”的意思是把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 然后加上初始数字就开始了啊
考虑到题主可能是初学者, 注意几个点
While(a) 只要a大于0 都为真
“ / ”得到的是最大整数商,余数部分不考虑
“ % ”得到的仅仅是余数
感受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;
}