c 程式執行時出現了記憶體錯誤??

時間 2025-02-26 11:35:20

1樓:網友

確實錯誤蠻多的。

沒有初始化就直接拿來用了,仔細看了下你的程式i應該初始化成0吧。

2.如果輸入的數是<10的,那麼第乙個while就是個死迴圈。因為你只是判斷a/10

是否等於0,但是並沒有執行a=a/10;所以如果輸入的數》=10,那麼這個迴圈永遠跳不出去了。

3.判斷是否相等,要b[count]==b[i-count+1]而不是b[count]=b[i-count+1]

4.演算法是不對的,這樣寫你的s只是記錄最後一次的比較結果的,換言之最中心的那一對數字相同你就輸出yes不同就no了,這邏輯肯定是錯的。你可以初始化s=1,一旦b[count]和b[i-count+1]不相等了,就令s=0,並且break;

既然你都把乙個int的乙個乙個數字放在陣列裡了,那確實還不如一開始就把這個數當字串來讀取,不是更方便。

我給你寫了下 你可以借鑑一下o(∩_o~

#include

#include

using namespace std;

int main()

int i;

string s;

cout<<"請輸入乙個整數:"int size=;

for(i=0;iif(s[i]!=s[size-1-i]) 一旦發現不相等,就break出去,這時i一定是小於size/2

break;

if(i==size/2) /說明不是break出來的,即所有的都符合。

cout<<"yes"

2樓:網友

錯誤蠻多的,乙個i沒有初始化就直接拿來用了。

再者迴圈也是錯的,第乙個while就是個死迴圈。

下面的迴圈大概知道你的意思,不過for迴圈也是錯的,你應該是讓第乙個與最後乙個,第二個與倒數第二數比較才對。

另外,沒事建個那麼大的陣列幹嘛?不另外寫大數類,你能輸入100位的整數?

事實上,我建議你不要用整數,用string類會更好。 既然是用c++,幹嘛不用更方便的方法呢。

以下隨便寫了個,僅做參考。

#include ""

#include

#include

#include

using namespace std;

int main()

cout<<"請輸入:";

string huiwen;

while(cin>>huiwen){

string::size_type size=;

string temp(size/2,'a');

temp=,;

if(equal(,,"這是迴文"

visual basic 執行時錯誤

因為我平時也經常用巨集處理資料,所以,個人認為出現這種情況要能有以下幾種原因 檔案的位置,檔名,excel標籤頁的名字 如sheet1,sheet2或是其它名字 是否符合巨集的規範。檔案裡有資料格式與巨集規定的不一致,比如a1單元格中應該是 數值型 的,卻寫了文字字元。或是其它地方複製過來,有空格 ...

c 順序表程式,編譯沒有錯誤,但是執行時就是不行,求指教

樓主 type data 是一個結構體指標,你想把它當做結構體指標陣列來用。l.data l.size item 我根據你程式要實現的意思,提出幾種修改建議 1 修改結構體成員type data 為陣列 type data maxsize 原 typedef struct seqlist 修改為 t...

單機遊戲執行時出現應用程式正常初始化0xc00000ba失敗 10

單機遊戲執行時出現應用程式正常初始化xcba失敗 點選一些檔案會出現 應用程式正常初始化 oxc 失敗。.檢視系統中是否有木馬或病毒。這類程式為了控制系統往往不負責任地修改系統,從而導致作業系統異常。平常應加強資訊保安意識,對 不明的可執行程式絕不好奇。 刪除然後重新建立 windows wbem ...