资源描述:
《acm输入输出介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ACM程序设计输入输出格式9/26/20211ACM题目特点由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。下面,分类介绍:9/26/20212一个超级简单的题目(ex-1):ProblemDescriptionYourtaskistocalculatea+b.InputTheinputwillconsistofaseriesofpairsofintegersaandb,separatedbyaspace,onepairofinte
2、gersperline.OutputForeachpairofinputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputforeachlineininput.Sampleinput151020Sampleoutput6309/26/20213初学者很常见的一种写法:#includevoidmain(){inta,b;scanf(“%d%d”,&a,&b);Printf(“%d”,a+b);}9/26/20214有什么问题呢?这
3、就是下面需要解决的问题基本输入输出9/26/20215输入第一类:输入不说明有多少个InputBlock,以EOF为结束标志。参见:ex-1.9/26/20216ex-1源代码:#includeintmain(){inta,b;while(scanf("%d%d",&a,&b)!=EOF)printf("%d",a+b);}9/26/20217本类输入解决方案:C语法:while(scanf("%d%d",&a,&b)!=EOF){ ....}C++语法:while(cin>>a>>b){ ....}9/
4、26/20218说明:Scanf函数返回值就是读出的变量个数,如:scanf(“%d%d”,&a,&b);如果a和b都被成功读入整数,那么scanf的返回值就是2;如果只有a被成功读入整数,返回值为1;如果a和b都未被成功读入整数,返回值为0;如果遇到错误或遇到endoffile,返回值为EOFEOF是一个预定义的常量,等于-1。9/26/20219输入第二类:输入一开始就会说有N个InputBlock,下面接着是N个InputBlock。ex-2ProblemDescriptionYourtaskistocalculatea+b.In
5、putInputcontainsanintegerNinthefirstline,andthenNlinesfollow.Eachlineconsistsofapairofintegersaandb,separatedbyaspace,onepairofintegersperline.OutputForeachpairofinputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputforeachlineininput.Sampleinput215
6、1020Sampleoutput6309/26/202110ex-2源代码:#includeintmain(){intn,i,a,b;scanf("%d",&n);for(i=0;i>n;for(i=0;i7、入不说明有多少个InputBlock,但以某个特殊输入为结束标志。ex-3ProblemDescriptionYourtaskistocalculatea+b.InputInputcontainsmultipletestcases.Eachtestcasecontainsapairofintegersaandb,onepairofintegersperline.Atestcasecontaining00terminatestheinputandthistestcaseisnottobeprocessed.OutputForeachpairof
8、inputintegersaandbyoushouldoutputthesumofaandbinoneline,andwithonelineofoutputfore