noilinux中如何对拍程序

以前一直没有写过对拍,学生会拍但我一直只是观望,没有写过,今天请大佬学生讲了下如何对拍,感觉还比较好理解,因此记录下本文章用来以后的查错用。教学相长,很有道理!
  以下对拍的目的是为了检查未确认的正解和确认的暴力在小数据的情况下找bug.
  在同一个目录下准备的文件有 :
    1.在确认中的标程:zzn.cpp
    2.确认正确的暴力:baoli.cpp
    3.写好的按题目要求生成的随机数程序:data.cpp
 下面以某题来说说如何对拍。具体做法分成以下几步:
  1.在同目录下新建文件cmp.sh,用gedit打开编辑,输入如下代码:

#!/bin/bash
while true; do
	./data  > data.in
	./zzn.cpp < data.in  > zzn.out
	./baoli.cpp < data.in > baoli.out 
	if diff zzn.out baoli.out; then
		printf "AC\n";
	else
		printf"WA\n";
		exit 0;
	fi
done

2.回到终端,cd定位到该目录,输入命令:sh cmp.sh
  这样就可以看到程序在随机出来的数据运行结果进行比较,没有错误会显示AC,直到出现WA就会停止,并且能在data.in文件中看到导致两个程序运行结果不一样的数据。
  3.接下来便可以通过这个数据来进行分析程序找bug了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值