acm基本输入输出(c语言)新
ACM 基本输入输出
2013年退役ACMer
ACM 简介
ACM原代表美国计算机协会, 因其举办的ICPC即国际
大学生程序设计竞赛而闻名全世界,此项赛事要求
学生的在五小时内解决全英文问题,并在效率和速
度以及代码的审查上要求非常严格以至近乎苛刻,
被誉为是计算机界的“奥林匹克”。在大学中,因
其含金量、认可度等非常之高,故而在大学生名企
就业、保研、留学等方面都有着极大的帮助。ACM
也因其独有的比赛趣味也在今天的高校中也得到了
广泛的推广,许多大学生都为之着迷、甚至大学四
年都为之献身。足以说明ACM 的魅力所在。
OJ 简介
OJ 简介:
ACM 比赛中主要以OJ( 即Online Judge)判题为主,用
来在线检测程序的正确性。OJ采用后台黑箱测试,
测试数据非常全面,涵盖各种特殊情况。并且在结
果的比对上也不放过一个空格和回车,这就要求程
序员要有非常严谨的思维。著名的OJ有POJ、HOJ、
UVA等。
轻量级OJ :www.clang.cc
ACM 赛题的基本的数据
在各大OJ 的ACM 比赛赛题上,往往都会给出问题的
描述(Description)、问题的输入和输出要求,并会给
出几组样例数据。所以选手要在完全理解的基础上
至少通过了样例数据才再提交代码。
下面我们介绍几种常见的输入输出格式。
A+B Ⅰ
这种输入的典型题目就是
A+B(http://clang.cc/problem.php?id=1085)
此题只要求用户求A+B 的和,但此类题目往往说明测
试数据有多组。则默认是到文件(后台测试用例在文
件里) 末尾结束。我们则可以采用循环的方式不断接
收测试用例,并且每接收一组输出一组( 不必全部输
入再全部输出,因为OJ只比对一次最后的结果) 。
参考C代码:
A+B Ⅰ
#include
int main()
{
int a,b;
while(scanf(“%d%d”,&a,&b)==2) //利用scanf 的返回值
{
printf(“%d\n”,a+b);
}
return 0;
}
A+B Ⅱ
依然是A+B ,我们可以看一下这道题
http://clang.cc/problem.php?id=1086
依然是求A+B ,但它的输入数据为:
2
1 5
10 20
输出为:
6
20
A+B Ⅱ
此题相比第一道而言,会提前告诉你是几组数据,第一行的2就表示有两组数据。则此时我们可以考
虑这样写:
#include
int main()
{
int n;
int a,b;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
}
return 0;
}
A+BⅢ
继续是A+B ,不同的是题目中说明,有多组数据,但是以A 和B都为0 时结束,则此时,就要做判断。
不能依然输出0。
http://clang.cc/problem.php?id=1