如何针对输入测试用例文件测试我的程序

时间:2012-07-18 07:27:30

标签: c windows

我参加了一些编码竞赛,幸运的是我的代码也运行了。但是我没有预料到我的解决方案,因为我对输入模式的错误。


问题涉及将整数作为输入并执行某些操作并返回不同或相同的整数。我对程序没有任何问题,我只是不知道如何编码以便接受这样的输入


Input

The input will contain several test cases (not more than 10). 
Each test case is a single  line with a number n, 0 <= n <= 1 000 000 000. 
It is the number given as input.

Output

For each test case output a single line, containing the integer returned.

Example

Input:
12
2

Output:
13
2

我的代码是


#include <stdio.h>

int functionReturningInteger(int n)
{
// implementation
........ 
return num;
}


int main(void)
{

int number;
//printf("Enter the number: ");
scanf("%d",&number);
printf(functionReturningInteger(number));
return 0;

}


我怎么知道他们会给出多少输入(尽管他们确实提供了最大限制)。如果我使用数组来存储这些大小等于最大限制的输入,我如何检查c中整数数组的大小?


我会感谢任何人帮忙解决一小段代码。如果能够针对输入测试文件测试它并生成“output.txt”(输出文件)。我已经有了所需的输出文件“des.txt”。那么如何匹配两个文件是否相同?

2 个答案:

答案 0 :(得分:0)

您可以逐行阅读,直到无法从文件中读取任何内容。这样您就不需要知道给出了多少输入。

在C中没有默认的跟踪数组大小的方法。

要匹配文件,您可以在Linux \ Unix操作系统上使用diff

答案 1 :(得分:0)

#include <stdio.h>
int scanned;
while((scanned = scanf("%d", &number)) != EOF) {
    printf("%d\n", functionReturningInteger(number));
}

如果scanf在转换成功之前检测到输入结束,则会返回EOF

对于其他问题,重定向输入和输出,

$ ./your_prog < input.txt > output.txt

并比较

$ comp output.txt des.txt