python怎么限制输入长度_c++输入流如何限制输入长度_互联网秋招笔试如何读取输入(python&C)...

问题阐述:

通过参加近3次笔试(阿里、字节跳动、网易)发现

机考的编译界面不同于leetcode(已经给出部分代码,不需要读取,直接用即可)

机考类似于华为机考,需要从零开始,包括读取输入

a24711e1cc4dc6d1d64a05025a2645c1.png

Bug:读取错误

在读取的时候,本地可以运行的代码却总是会报这个错误

EOFerror:EOF when reading a line

53084fe9f767bd3912c6d0c60aa8f15e.png

428ac067e6ba7cdda3df52eff8875778.png

解决这个问题的最好方式是采用try和except语法

list1 = []

while True:

try:

number = input()

if(number == ""):

break

list1.append(number)

except EOFError:

break

for i in list1:

print(int(i,16))

3a977ed9b9675eedcf151980ee918db3.png

读取多行数据可以采用上面所示代码的结构,while大循环里套上try

原 因 溯 源

产生这个bug的原因是因为机考测试不是人为手动输入测试案例,而是使用管道将输入传进测试的python脚本里,如下

a9c8a4dd821a7a4f5fcb2798312f8b19.png

58c1dd60316a5343d4732771a8d3a866.png

由于EOF无法通过管道被传输,所以会报错,针对于此。牛客特别提供了一套输入输出的测试练习题,链接如下

牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ​ac.nowcoder.com

解析同时附上

牛客OJ在线编程常见输入输出练习(python版)_qq_41023125的博客-CSDN博客_牛客在线oj输入输出联系​blog.csdn.net

5daeef22185c1972ad292554f304fc3f.png

下面为笔试机考C的时候遇到的输入问题,可采用以下方式正确读取

单行读取数字

b6c89add15d407b49fa82ed5e0cac812.png

int main(void)

{

int a, b;

scanf("%d %d",&a,&b);

return 0;

}

单行读取字符串

db7b605625384f46d0bd0041ed8396b0.png

#include

#include

int main()

{

char str[1000];

gets(str);

return 0;

}

多行读取数字

可以参考此题排名第一的题解写法

矩阵乘法_牛客网​www.nowcoder.com

#include

int main()

{

int x,y,z;

int a[50][50]={0};

int b[50][50]={0};

while(scanf("%d%d%d",&x,&y,&z)!=EOF)

{

for(int i=0;i

{

for(int j=0;j

scanf("%d",&a[j][i]);

}

for(int i=0;i

{

for(int j=0;j

scanf("%d",&b[j][i]);

}

for(int i=0;i

{

for(int j=0;j

{

int sum=0;

for(int k=0;k

sum+=a[k][i]*b[j][k];

printf("%d ",sum);

}

printf("n");

}

}

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值