我寫的用C語言實現十進位制數轉換為二進位制數程式怎麼執行不起?高手們幫我看看

2022-11-23 01:51:01 字數 1173 閱讀 4421

1樓:匿名使用者

做個記號,

/*你是採用c和c++的混合語言編寫的程式,我並不贊成這樣。首先是一個語法錯誤:

你的函式int empty(stack s)竟然沒有前置宣告

就呼叫了,這是一個語法錯誤!其實你完全可以把這些對棧的操作函式封裝在類中。

應該把int empty(stack s)放到int * pop(stack &s,int *e) 之前。

另外就是程式的邏輯錯誤了,我除錯了一下. 你的程式沒有很大的問題,

就是出棧函式有一點問題,這裡改動了,你對照你自己的程式可以看出哪個地方改變了,

主要是返回的是一個指標了。現在程式可以

跑了。我想你現在是在學習資料結構吧。這段**還是不錯的。

*/#include

#include

#include

#include

#define stacksize 50

#define stackincrement 20

#define overflow -1

#define ok 1

#define error -1

using namespace std;

typedef struct

stack;

int initstack(stack &s) //建立一個空棧

int push(stack &s,int e) //入棧

*s.top++=e;

return (ok);

} int empty(stack s) //判斷棧是否為空

int * pop(stack &s,int *e) //出棧 ,你的程式沒有很大的問題,就是出棧函式有一點問題,這裡改動了,

//你對照你自己的程式可以看出那個地方改變了,主要是返回的是一個指標了。

void main()

cout<<"轉為的2進位制數為: "<>ch;

if(isupper(ch)==1)

ch=tolower(ch);

}while(ch!='n');}

2樓:海中城市

我也是這麼覺得,這麼簡單的問題居然用這麼複雜的方法!無語!!

3樓:匿名使用者

高手 這麼簡單的程式用這麼複雜的方法 我還真看不懂 高手佩服

用c語言,輸入十進位制數,輸出相應的二進位制32位原碼 補碼 反碼 移碼和IEEE754浮點數

include include void main if n 0 輸入一個數字,既要用原碼反碼.顯示,又用ieee754浮點數顯示?不像話。輸入一個十進位制數,用c語言輸出其原碼補碼反碼移碼 十進位制數可以為正負數整數小數 25 include include void main if n 0 設計...

將十進位制數轉為二進位制數,用c語言,簡單一點並且要使用按位運算子

include int main printf u dec dec for i 0 i 32 i printf u bin i printf bin n return 0 執行結果 12345678 dec 00000000101111000110000101001110 bin 用c語言編寫二進位...

如何用c語言實現兩個16進位制數的異或

c語言中邏輯運算子號如下 按位與 如果兩個相應的二進位制位都為1,則該位的專結果值為1,否屬則為0 按位或 兩個相應的二進位制位中只要有一個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對一個二進位制數按位取反,即將0變1,將1變0所以異...