请问有哪些可以使用的输入输出方法?
答:使用C语言的选手可以使用printf, scanf, getchar和fgets。需要注意的是gets函数由于其危险性已被禁用,在需要整行读取时应用fgets函数。参考代码片段: char s[101]; fgets(s,100, stdin); 注意,当该行用回车符结束时,回车符也将存入s字符数组中。 使用C++语言的选手还可以使用cin和cout。
如何使用随机函数?
答:首先需要用srand初始化随机数种子,然后用rand()函数得到一个0到RAND_MAX之间的随机整数。参考代码如下: random.c。
#include<stdlib.h>
#include<time.h>
int main() {
srand(time(NULL));
double x = rand() / (double)RAND_MAX;
return 0;
}
#include<time.h>
int main() {
srand(time(NULL));
double x = rand() / (double)RAND_MAX;
return 0;
}
如何处理汉字?
答:如非特别说明,astar比赛中的所有汉字输入输出均用GBK编码。GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。 这是一个显示中西文混合字符串的参考程序。通过上面的分析可以得出,如果是汉字,则首字节在81-FE 之间,其最高位为1,所以补码小于0,应连续显示两个字节;如果是西文字符,则首字节在00-7F之间,其最高位为0,补码大于等于0,只需显示一个字节。 print_gbk.c
Code
评分服务器的性能如何?怎样读取程序目前所消耗的CPU时间?
答:下面的程序打印空循环1,000,000,000次所需要的时间(单位:秒): time.c,我们的评分服务器用时 0.4 秒。
Code
Windows 和 Linux 的文本换行符不一致(Linux 的换行符是 \n,而 Windows 的换行符是 \r\n),请问该如何处理?答:程序的运行环境是 Linux,输入文件的换行符是 \n,因此不必对换行符进行特殊处理。