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;
}