0基础同学ACM入门篇

只针对没有基础的同学,不喜勿喷。

1、首先要有C语言技能 (随便找本C的教程)

2、多练习

练习步骤:

1、首先把这个网站(杭州电子科技大学在线测评系统 :HDUOJ)加入你的网页收藏夹:点击打开链接

2、在HDU网站上注册一个你的ID :点击打开链接

中英文对照表:

Author ID : 帐号

Password : 密码

Confirm Psw. : 确认密码

Verify Code : 验证码

Submit : 提交


3、尝试解决本题:点击打开链接

输入2个整数,输出这两个数的和并换行。

下面是正确代码:

#include "stdio.h"
int main(){
    int a, b;
    while( scanf("%d %d", &a, &b) != -1 )
    {
        printf("%d\n", a+b);
    }
    return 0;
}

代码解答:

Q: 为什么scanf(···) != -1

scanf 语句是有一个返回值的。这个返回值表示正确读入的变量个数。

若成功读入了a,b, 则返回一个整数2 。

若一个也没有读入则读入失败,返回 -1

也就是说“当读入失败时, while循环结束"

而在线测评系统是要求读入失败才能结束的。


Q: 什么是'\n' , 为什么要加'\n'

A:有些不可见的字符,比如换行('\n'), 空格(' '), 具体可见ASCII码表, 而题目要求输出一个整数(占一行)


Q: 我写完代码接下来干什么

A: 

---------------------------

点击题目下方的Submit


---------------------------

出现提交框后选择Language : C++

下方Source Code粘帖上上方代码

点击下方的Submit

0基础同学ACM入门篇_第1张图片

---------------------------

转跳到测评页面


依次是:

测评状态 | 题号 | 代码运行时间 | 最大占用内存 | 代码长度(可以点击查看代码) | 提交语言|昵称(帐号)

Queuing : 在队列中等待(这时候刷新就好)

Compilation Error : 编译错误, 新手会常遇到

为什么错误(看到下划线了么..点中就能看到英文提示代码错误的原因)

为什么我本地编译器编译过了, 交上去就ce? 因为你本地用的编译器和OJ用的编译器不一样。OJ的更为严格

Accepted :代码正确, 可以换一题了

Wrong Answer : 答案错误. 如本题输出1 1,输出3

Runtime Error : 代码运行中断(产生原因:数组越界(a[-1]), 除0( int a=1/0; ) )

Memory Limit Exceeded:

代码使用最大内存过大(什么样算大呢, 在每个题目标题下面写的 Memory Limit: 65536/65536 K (Java/Others) 就是内存限制大小)

Time Limit Exceeded:

代码运行时间过久(什么样算久呢, 在每个题目标题下面写的 Time Limit: 10000/5000 MS (Java/Others) 就是代码运行最长时间)

---------------------------

4、多练习:

点击打开链接

这一页题目都是中文入门题,在此页做题目熟悉C语言。

Q : 题目不会做了怎么办

A : 

可以点击Submit边上的Discuss (讨论)查看别人的回复

或者百度搜索 HDU+题号(如:HDU 1000) 查看题解

等做到50题以上时即可开始学习算法了 -> 点击打开链接

你可能感兴趣的:(0基础同学ACM入门篇)