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所以異...