亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

新人求助 大神幫看一下問題在哪?15.16.17行報錯

新人求助 大神幫看一下問題在哪?15.16.17行報錯

C++
蒙麵女俠 2016-09-27 15:06:09
查看完整描述

3 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

雖然你看到編譯器在那三行報錯,其實錯誤還有很多。 我先列出能找到的錯誤吧:

  • 代碼前面你聲明了strcmp函數,后面你定義了它,但你在定義時少寫了返回類型int。

  • 在strcmp函數體里那三個if語句中,你是打算遞歸調用strcmp嗎? ?可是你把參數寫成了(const char *a, const char *b)。 調用函數時應該在括號中寫傳入的實參,你卻又把形參聲明一遍,這寫法不合語法,所以在這里報錯。

  • 如前一個回答所說,在這些if語句中 ret == 1; 是判斷語句,并不是賦值。 你應該使用單個=來為ret賦值。

  • strcmp這個函數是做什么用的? ?看名字似乎你是想實現C函數庫中的比較字符串函數,不過你這樣寫完全實現不了這個功能。 遞歸調用的用法錯了,你沒有設置遞歸截止條件,所以即便你將遞歸調用的語法寫對,這個strcmp函數會無限遞歸。 你應該好好整理思路,重寫這個函數的邏輯。

  • C++標準庫的頭文件不帶 .h 結尾,所以一開始應該寫成 #include <iostream> 這樣。

  • 你代碼中并沒有用到C++的string頭文件,為什么要include它?

  • 在main函數中,你想用str1和str2來作為字符串,但是你卻將它們聲明成了char類型,這只能表示"單個"字符。 后面你將str1、str2取地址后傳入strcmp函數,這樣strcmp函數確實接收的是指針類型,所以編譯器沒有報錯,但是完全不合你原本的邏輯。

查看完整回答
反對 回復 2016-09-29
?
慕仙1118221

TA貢獻5條經驗 獲得超0個贊

錯誤1:ret==1是判斷語句,不是賦值語句

錯誤2:比較字符串應該用string類型的字符串,而不是char

錯誤3:你自己定義的函數使用了庫函數strcmp,這是錯誤的

查看完整回答
反對 回復 2016-09-29
?
月落烏啼落日圓

TA貢獻20條經驗 獲得超9個贊

ret==1,ret==-1,ret==0是判斷語句,返回值是bool類型,并不是賦值語句,而且你的ret在函數中并沒有聲明,你的代碼有點莫名其妙,有點難懂。

查看完整回答
反對 回復 2016-09-27
  • 3 回答
  • 0 關注
  • 1701 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號