[已答复] matlab如何命令行窗口输入多行数据。华为机试

[复制链接]
yyyoooxyz 发表于 2021-1-5 18:31:52
本帖最后由 yyyoooxyz 于 2021-1-5 18:35 编辑

在牛客网做华为机试练习。遇到一个题目本地matlab运行都没问题,结果也对。但是牛客网提交显示

如果使用c/c++要保证int main函数最终 return 0;如果使用其余语言请检查代码"是否有数组越界等异常"或者"是否有语法错误" error: input: reading user-input failed! error: called from a.matlab at line 16 column 6
你的输出为:error: input: reading user-input failed!
error: called from
a.matlab at line 16 column 6

我估计是不是input有问题,需要一次在命令行输入所有的数据然后再判断,而不是一个一个的输入。但是看了一圈不知道如何写多行的命令行输入。麻烦大佬帮我看看。拜托了。这牛客网的输入输出真是搞死人。

题目描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
当没有新的输入时,说明输入结束。


输入描述:
注意:输入可能有多组数据。每组数据都包括多行,第一行先输入随机整数的个数N,接下来的N行再输入相应个数的整数。具体格式请看下面的"示例"。
输出描述:
返回多行,处理后的结果
示例1
输入

3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15

输出

1 2 10 15 20 32 40 67 89 300 400

说明样例输入解释:样例有两组测试第一组是3个数字,分别是:2,2,1。第二组是11个数字,分别是:10,20,40,32,67,40,20,89,300,400,15。





我的代码如下:

clear;
clc;
close all;
c=input('');
i=1;
while ~isempty(c)
    a=c;
    while (a>0)
    d=input('');
    b(i)=d;
    a=a-1;
    i=i+1;
    end
    c=input('');
end  
b=sort(b);
b=fliplr(b);
b=unique(b);
b=num2str(b);
b(isspace(b))=[];
fprintf(num2str(b));


5 条回复


yyyoooxyz 发表于 2021-1-5 18:37:20
目前我的代码的输入是,一次回车输入一个,执行完再输入一个数据,输入是一个一个的。
我在想是不是题目的要求是,一次输入N*1行的数据,当做一个数组再执行。
问题是,不知道如何一次输入N*1行的数据,且N未知大小。

yyyoooxyz 发表于 2021-1-5 19:59:08
改进后,一次输入全部数字,还是本地matlab答案对的,但是在线评测没通过。这在线评测好奇怪。

clear;
clc;
close all;
c=input('','s');
c=str2num(c);
l=length(c);
i=1;
d=1;
while i<=l
    a=c(i);
    while (a>0)
    i=i+1;
    b(i-d)=c(i);
    a=a-1;
    end
    i=i+1;
    d=d+1;
end  
b=sort(b);
b=fliplr(b);
b=unique(b);
b=num2str(b);
b(isspace(b))=[];
fprintf(num2str(b));

hehedada 发表于 2021-3-23 11:37:19
yyyoooxyz 发表于 2021-1-5 19:59
改进后,一次输入全部数字,还是本地matlab答案对的,但是在线评测没通过。这在线评测好奇怪。

clear;

我也是,楼主有没有解决

洛水苍楠 发表于 2021-9-13 18:25:51
while 1 %多组输入
x=input('') %整数个数
for i=1:x
y=input(''); %对应每行
end
%其他操作--->针对每一组数据
end
这个格式应该可以吧。。。

洛水苍楠 发表于 2021-9-13 18:27:16
洛水苍楠 发表于 2021-9-13 18:25
while 1 %多组输入
x=input('') %整数个数
for i=1:x

我给多组输入这部分愁掉了好多头发呜呜呜,牛客的输入格式愁死我这个只会matlab的人了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表