杭电oj2000-2011
2000 ASCII码排序
#include <stdio.h>
int main(){
char a,b,c,t;
while(scanf("%c%c%c", &a, &b, &c)!=EOF){
getchar();#必须得加这玩意
if(a>b){
t = a;
a = b;
b = t;
}
if(a>c){
t = a;
a = c;
c = t;
}
if(b>c){
t = b;
b = c;
c = t;
}
printf("%c %c %c\n", a,b,c);
}
}
一开始没有添加getchar()函数引发错误,后来查看大佬的wp知道了原因这里引用大佬的解释:
第一次没有加getchar()函数,结果不正确,运行时,第一次输入三个字符排序正确,可是后面再输入时输出就会错误。通过查看别人类似问题的分析,知道了其中缘由。从键盘输入的字符,会存放到缓冲区中,包括回车符。如输入“abc回车”之后,缓冲区中存了有四个字符'a'、'b'、'c'、'\n',如果上面程序中没有getchar(),则第一次从缓冲区中提取了三个字符之后,还剩下了一个'\n',则下次再输入三个字符时,缓冲区中会把上次剩下的回车符也算进去,这样处理起来就会有问题。getchar()是从缓冲区中读取一个字符,如果只是去除缓冲区中的字符,不需要用赋值表达式,直接使用getchar();即可,当然,使用赋值表达式也可以,如:m=getchar();。上面程序中使用了getchar()之后,就可以把每次输入三个字符之后的回车符吸收掉,这样结果就正确了。
2001 计算两点间的距离
#include <stdio.h>
#include <math.h>
int main(){
double x1,y1,x2,y2,d;
while(scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2)!=EOF){
d= sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
printf("%.2lf\n", d); }
}
2002 计算球体积
#include <stdio.h>
#define PI 3.1415927 int main(){
double x, v;
while(scanf("%lf", &x)!=EOF){
v = *PI*x*x*x/;
printf("%.3lf\n", v);
}
}
2003 求绝对值
#include <stdio.h>
int main(){
double x,y;
while(scanf("%lf", &x)!=EOF){
y = x;
if(y<){
y = -x;
}
printf("%.2lf\n", y);
}
}
2004 求绝对值
#include <stdio.h>
int main(){
int x;
while(scanf("%d", &x)!=EOF){
if(x< || x>){
printf("Score is error!\n");
}
if(x>= && x<){
printf("E\n");
}
if(x>= && x<){
printf("D\n");
}
if(x>= && x<){
printf("C\n");
}
if(x>= && x<){
printf("B\n");
}
if(x>= && x<=){
printf("A\n");
}
}
}
2005 第几天?
#include <stdio.h>
int main(){
int a,b,c,i,days;
int mon[] = {,,,,,,,,,,,};
while(scanf("%d/%d/%d", &a,&b,&c)!=EOF){
if((a%== && a% !=) || (a% == )){
days = ;
mon[] = ;
for(i=; i<b-; i++){
days += mon[i];
}
days += c;
printf("%d\n", days);
}else{
days = ;
mon[] = ;
for(i=; i<b-; i++){
days += mon[i];
}
days += c;
printf("%d\n", days);
}
} }
2006 求奇数的乘积
#include <stdio.h>
int main(){
int n, i ,mul;
while((scanf("%d", &n))!=EOF){
mul = ;
while(n--){
scanf("%d", &i);
if(i%!=){
mul = mul*i;
}
}
printf("%d\n", mul);
} }
2007 平方和与立方和
这玩意首先要判断输入两个数的大小,不然就是错的
#include <stdio.h>
int main(){
int n,m,squ,cub,i;
while((scanf("%d %d", &n,&m))!=EOF){
squ=;
cub=;
if(n<m){
for(i=n;i<=m;i++){
if(i%==){
squ += i*i;
}else{
cub += i*i*i;
}
}
printf("%d %d\n",squ,cub);
}else{
for(i=m;i<=n;i++){
if(i%==){
squ += i*i;
}else{
cub += i*i*i;
}
}
printf("%d %d\n",squ,cub);
} } }
2008 数值统计
#include <stdio.h>
int main(){
int n,x,y,z;
double i;
while((scanf("%d", &n))!=EOF){
if(n==){
continue;
}else{
x=;
y=;
z=;
while(n--){
scanf("%lf", &i);
if(i<){
x += ;
}else if(i==){
y += ;
}else if(i>){
z += ;
}
} }
printf("%d %d %d\n", x,y,z);
}
return ;
}
2009 求数列的和
#include <stdio.h>
#include <math.h>
int main(){
int m;
double i,sum,n;
while(scanf("%lf %d", &n,&m)!=EOF){
sum = ;
while(m--){
sum += n;
n = sqrt(n); }
printf("%.2lf\n", sum);
}
}
2010 水仙花数
最后输出的时候最后不允许有空格,因此第一个数的输出与后面数的输出不一样。
#include <stdio.h>
int main(){
int m,n,a,b,c,i,flag;
while(scanf("%d %d",&m,&n)!=EOF){
flag = ;
for(i=m;i<=n;i++){
a=i/;
b=i%/;
c=i%;
if(i==a*a*a+b*b*b+c*c*c){
flag += ;
if(flag==){
printf("%d",i);
}else{
printf(" %d",i);
}
}
}
if(flag==){
printf("no");
}
printf("\n");
}
}
2011 多项式求和
#include <stdio.h>
int main(){
int n,i;
double a,sum,j;
scanf("%d", &n);
while(n--){
sum = ;
scanf("%lf",&a);
for(i=;i<=a;i++){
if(i%==){
j = i;
sum -= /j;
}else{
j = i;
sum += /j;
}
}
printf("%.2lf\n", sum);
}
}
杭电oj2000-2011的更多相关文章
- 杭电acm阶段之理工大版
想參加全国软件设计大赛C/C++语言组的同学,假设前一篇<C和指针课后练习题总结>没看完的,请先看完而且依照上面的训练做完,然后做以下的训练. 传送门:http://blog.csdn.n ...
- 杭电ACM题单
杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...
- 杭电acm习题分类
专注于C语言编程 C Programming Practice Problems (Programming Challenges) 杭电ACM题目分类 基础题:1000.1001.1004.1005. ...
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- 杭电acm 1002 大数模板(一)
从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...
- 杭电OJ——1198 Farm Irrigation (并查集)
畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...
- 杭电ACM2076--夹角有多大(题目已修改,注意读题)
杭电ACM2076--夹角有多大(题目已修改,注意读题) http://acm.hdu.edu.cn/showproblem.php?pid=2076 思路很简单.直接贴代码.过程分析有点耗时间. / ...
随机推荐
- The Extinction of Some Languages【一些语言的消失】
The Extinction of Some Languages Languages have been coming and going for thousands of years, 语言的产生和 ...
- Aizu:0189-Convenient Location
Convenient Location Time limit 1000 ms Memory limit 131072 kB Problem Description 明年毕业的A为就业而搬家.就职的公司 ...
- Android Config通用类来记录信息
1.整体分析 1.1.源代码,可以直接Copy. public class Config { private static int M = 1024 * 1024; private volatile ...
- 20145202马超《Java程序设计》第十周学习总结
一.网络编程 1.网络概述 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据 ...
- Eclipse 修改字符集---Eclipse教程第02课
默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设置步骤如下: 在菜单栏选择 Window ...
- 剑指Offer - 九度1513 - 二进制中1的个数
剑指Offer - 九度1513 - 二进制中1的个数2013-11-29 23:35 题目描述: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 输入: 输入可能包含多个测试样例. ...
- 《Cracking the Coding Interview》——第18章:难题——题目7
2014-04-29 03:05 题目:给定一个词典,其中某些词可能能够通过词典里其他的词拼接而成.找出这样的组合词里最长的一个. 解法:Leetcode上有Word Break这道题,和这题基本思路 ...
- Python处理Sqlite3数据库
sqlite3比较小众 本章主要通过Python Code表述如何增.查.改.删 sqlite3 DB 一.直接上代码 #!/usr/bin/env python # -*- coding: utf- ...
- day-python入门3
本节内容 鸡汤.电影 IDE介绍 知识回顾 数据类型 For循环 while循环 列表及常用操作 IDE介绍 IDE即集成开发环境 常见IDE Visualstudio : w ...
- mac虚拟机上(centos系统)设置联网第二种方式
这种方式简单,不容易出错,用的桥接的方式. 这样的安装的centos会得到ip地址 然后编辑一下网卡配置,使其变为静态得ip 输入命令 # vi /etc/sysconfig/network-scri ...