以下if
語句只有在我的digitToFind
變量爲5
時才能正常工作,否則會被忽略。if語句只識別某些整數:MATLAB
if(digitToFind == R)
digitToFindFreq = digitToFindFreq + 1;
end
該程序是爲了計數在一個給定的整數的位數,並發現由用戶選擇一個特定數量的頻率。
例如:123445;位數是6,頻率4是2。
digitToFindFreq = 0;
numOfDigits = 0;
integerInput = input('Enter an integer: ');
while(integerInput ~= round(integerInput))
fprintf('Invalid input. Try again!\n');
integerInput = input('Enter an integer: ');
end
digitToFind = input('Enter a digit number to find (0 to 9): ');
while(digitToFind < 0 || digitToFind > 9 || digitToFind ~= round(digitToFind))
fprintf('Invalid input. Try again!\n');
digitToFind = input('Enter a digit number to find (0 to 9): ');
end
if(integerInput == 0 && digitToFind ~= 0)
numOfDigits = 1;
digitToFindFreq = 0;
elseif(integerInput == 0 && digitToFind == 0)
numOfDigits = 1;
digitToFindFreq = 1;
end
while(integerInput >= 1)
integerInput = integerInput/10;
X = integerInput - fix(integerInput);
R = 10*X;
if(digitToFind == R)
digitToFindFreq = digitToFindFreq + 1;
end
integerInput = integerInput - X;
numOfDigits = numOfDigits + 1;
end
fprintf('\nNumber of digits: %d, Digit to find frequency: %d\n',numOfDigits,digitToFindFreq);
我從來沒有像這樣的問題。它一定是我錯過的一些小東西,否則程序會正常工作。