我参加了一些编码竞赛,幸运的是我的代码也运行了。但是我没有预料到我的解决方案,因为我对输入模式的错误。
问题涉及将整数作为输入并执行某些操作并返回不同或相同的整数。我对程序没有任何问题,我只是不知道如何编码以便接受这样的输入
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”。那么如何匹配两个文件是否相同?
答案 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