輸入:
101101110
1101
預期輸出:
000000000011
我的輸出:
它只是繼續輸入,不顯示任何輸出。
請幫我 。我的代碼有什么問題。任何幫助都將不勝感激。我已經給出了變數的名稱,以便于理解。此代碼僅適用于發送方。
#include <iostream>
using namespace std;
int main()
{
string input;
string polynomial;
string encoded="";
cin>>input;
cin>>polynomial;
int input_len=input.length();
int poly_len=polynomial.length();
encoded=encoded input;
for(int i=1;i<=poly_len-1;i ){
encoded=encoded '0';
}
for(int i=0;i<=encoded.length()-poly_len;){
for(int j=0;j<poly_len;j ){
if(encoded[i j]==polynomial[j]){
encoded[i j]=='0';
}
else{
encoded[i j]=='1';
}
}
while(i<encoded.length() && encoded[i]!='1'){
i ;
}
}
cout<<encoded;
return 0;
}
uj5u.com熱心網友回復:
正確查看這些行:
if (encoded[i j] == polynomial[j]) {
encoded[i j] == '0'; // Line 1
}
else {
encoded[i j] == '1'; // Line 2
}
看?您正在使用==,而您應該使用=. 是回傳(true/false)==的比較運算子。boolean它不賦值。因此,要解決您的問題,請將上述行替換為:
if (encoded[i j] == polynomial[j]) {
encoded[i j] = '0'; // Replaced == with =
}
else {
encoded[i j] = '1'; // Replaced == with =
}
這應該可以解決您的問題。
uj5u.com熱心網友回復:
我給你的建議是熟悉除錯。嘗試在你的代碼中添加一些斷點,這樣你就可以真正看到背后發生了什么。檢查您的代碼后,似乎這一行給出了一個無限回圈for(int i=0;i<=encoded.length()-poly_len;)。輸入您給我們的輸入后,條件在任何時候都不會成立。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/442608.html
下一篇:使用隨機字母移位解密訊息
