跑代码用法:添加CodeRunner题型即可。
请先下载样本题型:CR样本-20200322-0832.xml ,导入到你课程的题库里,它里面是各种编程语言出题的出题样例,编辑你需要的语言类型的题目,就知道coderunner题目怎么出题。
特别注意:下面这个问题,已经解决了,mdl_question_coderunner_options表中c_function和c_program两个类型中,sandboxparams沙箱参数加上{"linkargs": ["-lm"]}了,不用去理会,C语言程序,就选c_program类型;C语言函数,就选c_function类型。不用去选C++类型! |
---|
由于jobe服务器是采用Ubuntu操作系统,在编译C语言是,如果里面引用到诸如sqrt()的数学函数,它只能对常量开方,如sqrt(10),而不能对变量开方,如sqrt(i),否则会出现引用不到sqrt函数的编译错误。解决办法是在编译时加上【-lm】参数,如【gcc a.c -lm】,这就需要去修改容器内的判题源代码,但一时无法定位在哪里修改。故采用变通办法: #include <stdio.h> |
#include <iostream>
using namespace std;
int main()
{
int a,b;
while(cin >> a >> b)
cout << a+b << endl;
}
2、C 编程样例:#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
3、PASCAL(FPC) 编程样例:
program p1001(Input,Output);
var
a,b:Integer;
begin
while not eof(Input) do
begin
Readln(a,b);
Writeln(a+b);
end;
end.
4、Java 编程样例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
5、Python2 编程样例:吴菁老师调试心得(本文只是记录下来,并未实际检验过):
python调试:
1-系统读入数据,都是字符串型;
2-如果输出是列表类型,出卷的时候,结果书写格式跟常规写法有点区别,逗号跟数字之间多了一个空格。
import sys
for line in sys.stdin:
a = line.split()
print int(a[0]) + int(a[1])
6、Python3 编程样例:
import sys
for line in sys.stdin:
a = line.split()
print(int(a[0]) + int(a[1]))
用input读入固定数量的数据样式:
用input读入数量未知的数据样式:
7、PHP 编程样例:注意,这里的STDIN不是stdin,要区分小小写的。 <?php while (fscanf(STDIN, "%d%d", $a, $b) == 2) { echo ($a + $b) . "\n"; }
如果读入字符串,这样编写:
fscanf(STDIN, "%s", $a);
范例1:从键读入一行字符串,统计出里面数字字符的个数。
<?php
//本机调试
//先在web根下建立data.txt文件
//data.txt内容:ab0dekk2kbjk5@@@
//从文件中读入数据
//$a=file_get_contents("data.txt");
//提交评测时,注释掉上面这句,采用下面这句:
fscanf(STDIN,'%s',$a);
$len=strlen($a);
$cnt=0;
for($i=0;$i<$len;$i++)
{
$p=substr($a,$i,1);
if($p>='0' && $p<='9')$cnt++;
}
echo $cnt;
范例2:从键盘输入两个整数,求他们的和。
<?php
//本机调试
//先在web根下建立data.txt文件
//data.txt内容:2 8 ,注意,2和8之间可以有若干个空格和若干个回车符
//从文件中读入数据
$a=file_get_contents("data.txt");
//把回车换行符转换为空格符
$a=str_replace("\r\n", " ", $a);
//把连续多个空格符转换为1个空格符,方法1
$a=preg_replace("/\s(?=\s)/","\\1",$a);
echo $a . "<br>";
$d=explode(' ', $a);
echo $d[0] + $d[1];
//提交评测时,注释掉上面这句,采用下面这句:
//fscanf(STDIN,'%d%d',$a,$b);
echo $a + $b;
8、SQL(sqlite3) 编程样例: