我很难编写一个algortihm,它将三个数字作为用户的输入并计算它们的最大值。我试图通过使用函数来做这些,但是,我收到一条错误消息:“未定义函数'calc'用于'char'类型的输入参数。
无标题(第2行)计算错误(数字); “
这是我的代码:(我是编码的新手,因此可能存在其他类型的错误:))
numbers= input('Enter three numbers to find out maximum of them:','s');
calc(numbers);
maxi
function [ maxi ] = calc( numbers(1),numbers(2),numbers(3) )
%UNTİTLED2 Summary of this function goes here
% Detailed explanation goes here
maxi= numbers(1);
if numbers(2)>maxi
maxi= numbers(2)
end
if numbers(3)>maxi
maxi= numbers(3)
end
end
答案 0 :(得分:1)
正如你所说“我是编码新手”,我想我会为此描述几种不同的方法。
阅读输入
你可以像 H.Ghassami 那样建议并逐一阅读输入。 这可能是更好的选择,因为有一些故障处理 内置于其中。用户一次只能输入一个输入 检查输入是否可评估(数字或变量来自 当前的工作空间)。通过为要获得的输入数量添加变量,rutin可以更加通用。
$(document).ready(function() {
$('#example').DataTable( {
"bPaginate": true,
"processing": true,
"bServerSide": true,
ajax: {
url: 'https://api.myjson.com/bins/1egsx',
dataSrc: function ( json ) {
// Store entire data in sessionStorage
// return the first 10 entries only for now
return json.data.slice(0,10);
},
},
columns: [
{ data: 'account_id' },
{ data: 'name' },
{ data: 'email' }
],
});
});
您也可以让用户一次性输入所有数字,如问题中的示例所示,向numberOfInputs = 3;
number = zeros(1, numberOfInputs);
for idx = 1:numberOfInputs
% Get the number of inputs declared in numberOfInputs
number(idx) = input( sprintf('Enter number %d: ', idx));
end
添加第二个参数's'。输入现在被视为字符串。用户必须以某种方式分隔输入数字,最好是用空格。然后,您必须将字符串转换为数字向量。
input
您应该对数字数组进行一些检查,看它是否有效(正确数量的数字)
获取最大值
Matlab有一个buildin功能。所以你可以写
numberOfInputs = 3;
number = input( sprintf('Enter %d numbers separated by whitespaces\n', numberOfInputs), 's');
number = str2num(number); % Convert to number array
或者如果您(也许是为了练习)想要使用maxNumber= max(number);
结构,可以使用if
循环使其更通用
for
-
整个解决方案可以封装在函数
中maxNumber = number(1);
for idx = 2:numberOfInputs
if maxNumber < number(idx)
maxNumber = number(idx);
end
end
答案 1 :(得分:0)
你的第一个错误是calc
。它只是从用户那里得到一个字符串,但你需要三个数字
第二个是脚本中的下一行。计算数字时,应将输出发送到变量。您还应该更改number1= input('Enter number1:');
number2= input('Enter number2:');
number3= input('Enter number3:');
maxi=calc(number1,number2,number3)
%---------------------------------------------------
function [ maxi ] = calc( numbers1,numbers2,numbers3 )
%UNTİTLED2 Summary of this function goes here
% Detailed explanation goes here
maxi= numbers1;
if numbers2>maxi
maxi= numbers2;
end
if numbers3>maxi
maxi= numbers3;
end
end
参数。
将此代码放在脚本中而不是代码中:
return
参与阅读:http://matlabgeeks.com/tips-tutorials/getting-user-input/