c語言,將整數逆置。要求高效,移位思想解決

時間 2022-08-02 04:30:13

1樓:匿名使用者

他那個反轉位元組,其實就是反轉一個位元組的各個位例如:十進位制 二進位制

61 0110 0001

86 1000 0110

其實二進位制數跟十進位制是完全無關的,只跟八進位制,十六進位制有關,這些都能夠用移位,異或,與,或等來解決

如果樓主給出的int a=789是十六進位制的,就可以通過以為來轉。**如下:

void main()

如果執著要十進位制的,我表示無能為力

2樓:匿名使用者

移位或者說位運算的思想,確實想不到怎麼弄。如果是16進位制就很簡單了,但是10進位制就不知道了。

目前不需要轉換成字串的方式就是用模運算,獲得每位的數值,然後 數值*(10^倒轉後所在位) 然後將所有乘積累加就可以得到倒轉後的整數值了。

**如下:

#include

#include

int main()

int reversenumber(int oldnum)for(int j = 0;i>0;i--,j++)return reverse;}

3樓:匿名使用者

#include

void reverse(int m);

main()

void reverse(int m)

4樓:匿名使用者

int reverse_int(int num)else

reverse_num += temp;

}i++;

}return reverse_num ;

} 剛寫的,沒編譯,能看懂就給分吧

與 或 進位是設計給二進位制的,套到十進位制行不通,移位思想並非是用移位符

5樓:匿名使用者

用動態陣列存放數值。倒著輸出。

6樓:匿名使用者

c語言只能這麼把數倒置 「模計算出每一位,或者轉字串再逆置轉數字」,其他所謂簡單的方法也只是先編寫了一個這樣的函式而已,原理一點也沒有變。

7樓:匿名使用者

以字串的形式儲存就好解決了

c語音,逆置整數,請大神改正

8樓:

首先b就是逆置後的數,其次要先scanf得到a的值

c語言逆置正整數求教

9樓:篤俠

好像沒有那麼複雜,請看下面程式:

#include

int main()

printf("\n");

return 0;}

10樓:匿名使用者

#include

#define n 10

int fun(int a,int num)for(i = 0; i < n; i++)return sum;

}int main()

;scanf_s("%d",&num);

printf("%d\n",fun(a,num));

system("pause");

return 0;}

11樓:是左啊

1010101

類似這樣的資料就不符合,

函式輸出c語言實驗——逆置正整數題目描述輸入一個三位正整數,將它反向輸出。輸入 3位正整數。 輸出 逆置

12樓:我等著你愛人

#include "stdio.h"

int main(void)

13樓:匿名使用者

#include

int main()

for(i=0;i<3;i++)

printf("%d",m);

return 1;}

14樓:匿名使用者

幾位數都可以,希望對你有所幫助

#include

int main()

puts(a);

return 0;}

15樓:匿名使用者

#include

int fun(int x)

void main()

16樓:網曉強

void main()

printf("\n");}

c語言實驗題——逆置正整數

17樓:匿名使用者

你這個程式還是不對,如果輸入的正整數是200,按照你這個程式(假如是正確的),那麼會輸出02;按照你的意思應該只輸出個2才對。

#include

void main()

你測試下吧,我沒裝環境沒有測試~

18樓:匿名使用者

#include

int main()

else

printf("%d%d%d\n",g,f,d);

return 0;

}另外你這程式寫的太侷限了,如果輸入100呢,答案應該輸出1才對下面是好的寫法:

#include

#define max_d 100

int main()

for (i = 0; digit[i] == 0 && i < n; i++);

for (; i < n; i++)

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

printf("\n");

return 0;}

19樓:0707文俊

#include

using namespace std;

int main()

return 0;

}個人認為我的比他們的簡單明瞭多了

20樓:匿名使用者

只錯了一個小地方而已,改過來就沒事了:

if(d=0) -----> if(d==0)

21樓:射鯨英雄涵

#include

int main()

c語言編寫一個函式將一個整數迴圈右移

22樓:66666順心

#include

#define n 1000

void reverser(int *a,int n,int m)int i,k=0,t;

k=n%m;

for(i=0;i<=(m-1)/2;i++)//將數字換為原來整數的形式

t=a[m-1-i];

a[m-1-i]=a[i];

a[i]=t;

while(k>0)//移位

t=a[m-1];//將最後一個數字暫存!

for(i=m-2;i>=0;i--)//迴圈向右移位a[i+1]=a[i];

a[0]=t;//將最後一個數字付給第一個數字k--;

int main()

int a[n]=,m=0,k,n,i;

printf("輸入你要移位的數:");

scanf("%d",&k);

printf("輸入移位多少位:");

scanf("%d",&n);

dowhile(k>0);

reverser(a,n,m);

for(i=0;iprintf("%d",a[i]);

printf("\n");

return 0;

c語言整數移位問題

23樓:金色潛鳥

當要求的移位數 多於 數的位數時,你的程式有錯。

例如 12 5 (應當允許轉多個圈)。

給你改了一下,但沒有給你改 eof: (scanf() == eof 是個達不到的條件)。

輸入數是否有最多位數規定,否則直接用字串讀入為好。

*****===

#include

#include

int main()

printf("%s\n",num); // 這裡給你按字串形式輸出了。你可以轉為int 輸出,免去左端的0

}return 0;}

24樓:匿名使用者

/*123456 2

561234

123456789 1

912345678

123456789 2

891234567

^zpress any key to continue*/#include

#include

int main()

printf("%s\n",num);

}return 0;}

c語言編寫程式 將一個一維陣列進行逆置,如原來是1,2,3.後為3,2,1

25樓:風若遠去何人留

將原本陣列,頭尾對稱位置互換即可。

函式**如下:

void reverse(int *a, int l)//將a上長度為l的陣列逆置}

26樓:

main()

27樓:

#include

main()

我這個是通用的

輸入一個三位正整數,將它反向輸出。用c語言編!

28樓:匿名使用者

#include

main()

三位du數除zhi以100那麼商就是三位數的百位dao上數字版,三位數除以

10的商再除以10的餘數就權是三位數的十位上的數字,三位數除以10的餘數就是三位數個位上的數字。

29樓:跪著作揖

#include

void main(  )

擴充套件資料

將三位正整數

專反向輸出的其他方法:

#include

#include

int main( )

30樓:夏碧夢

#include

void fun(int num)

}int main()

31樓:心夢無痕

寫的簡練點:

#include

void main()

c語言如何將賦值過的陣列置空,C語言 如何將一個賦值過的陣列置空

幻翼高達 需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 10 hello a 0 0 printf s a 3 編譯器執行test.cpp檔案,此時字串被成功置空被列印。...

如何用c語言實現單連結串列的逆置

溪貝0號 扣著的是頭節點 頭子 車是首節點 首子 馬是次節點 次子 牙籤細的是指標指向,香頭髮黑的是指向,鐵頭細的是指向。以下是while迴圈 條件 香頭指向不為空 第一個迴圈把馬弄到車前面,第二個迴圈把相弄到馬前面 第三個迴圈把士弄到相前面 直到香指向為空後停止迴圈。如下 只需要一個首結點phea...

c語言怎樣將整數4445678 轉換成

ansi字串使用sprintf unicode字串使用wsprintf 你可以使用它們像把整數輸出到螢幕那樣,把整數格式化後輸出到字串。另外,itoa並非標準c庫函式,而且在多個整數變成字串進行組合時沒有sprinf之類的方便,所以慎用itoa。希望對擼主有幫助。我的試想是你可以利用賦值丟失精度的方...