落絮飞雁

顺流而下,把梦做完

HDOJ2027:统计元音

Problem Description
统计每个元音字母在字符串中出现的次数。
 

 

Input
输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。
 

 

Output
对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)

 

 

Sample Input
2
aeiou
my name is ignatius
 

 

Sample Output
a:1
e:1
i:1
o:1
u:1
 
a:2
e:1
i:3
o:0
u:1
 

 放上代码:

#include
#include
int main()
{
    int num[5] = { 0 }, len, leni, t, ti;
    char cache[100] = { 0 };
    scanf("%dn", &t);
    for (ti = 0; ti 

没有一次过……原因是之前写的是memset(cache,0,5);后来看了一下,第三个参数必须要是size_of的形式。改掉就AC了。

HDOJ2042:不容易系列之二

Problem Description
你活的不容易,我活的不容易,他活的也不容易。不过,如果你看了下面的故事,就会知道,有位老汉比你还不容易。

重庆市郊黄泥板村的徐老汉(大号徐东海,简称XDH)这两年辛辛苦苦养了不少羊,到了今年夏天,由于众所周知的高温干旱,实在没办法解决牲畜的饮水问题,就决定把这些羊都赶到集市去卖。从黄泥板村到交易地点要经过N个收费站,按说这收费站和徐老汉没什么关系,但是事实却令徐老汉欲哭无泪:

(镜头回放)

近景:老汉,一群羊
远景:公路,收费站

……

收费员(彬彬有礼+职业微笑):“老同志,请交过路费!”

徐老汉(愕然,反应迟钝状):“锅,锅,锅,锅-炉-费?我家不烧锅炉呀?”

收费员(职业微笑依然):“老同志,我说的是过-路-费,就是你的羊要过这个路口必须交费,understand?”

徐老汉(近镜头10秒,嘴巴张开):“我-我-我知道汽车过路要收费,这羊也要收费呀?”

收费员(居高临下+不解状):“老同志,你怎么就不明白呢,那么我问你,汽车几个轮子?”

徐老汉(稍放松):“这个我知道,今天在家里我孙子还问我这个问题,4个!”

收费员(生气,站起):“嘿!老头,你还骂人不带脏字,既然知道汽车四个轮子,难道就不知道这羊有几条腿吗?!”

徐老汉(尴尬,依然不解状):“也,也,也是4个呀,这有关系吗?”

收费员(生气,站起):“怎么没关系!我们头说了,只要是4条腿的都要收费!”

……

(画外音)

由于徐老汉没钱,收费员就将他的羊拿走一半,看到老汉泪水涟涟,犹豫了一下,又还给老汉一只。巧合的是,后面每过一个收费站,都是拿走当时羊的一半,然后退还一只,等到老汉到达市场,就只剩下3只羊了。

你,当代有良知的青年,能帮忙算一下老汉最初有多少只羊吗?

 
Input
输入数据第一行是一个整数N,下面由N行组成,每行包含一个整数a(0<a<=30),表示收费站的数量。
Output
对于每个测试实例,请输出最初的羊的数量,每个测试实例的输出占一行。
 
Sample Input
2
1
2
 
Sample Output
4
6

 

#include
int main()
{
 int n, ni, goat, st,sti;
 scanf("%d", &n);
 for (ni = 0; ni 

最近很烦,来A水题了……貌似徐东海是个悍匪,怎么变成任人宰割的徐老汉了咩……

HDOJ2023:求平均成绩

求平均成绩

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61374    Accepted Submission(s): 14701

Problem Description
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。
 
Input
输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。
 
Output
对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
每个测试实例后面跟一个空行。
 
Sample Input
2 2
5 10
10 20
 
Sample Output
7.50 15.00
7.50 15.00
1
 

#include
#include
int main()
{
 int n, m;
 int i, j;
 int t, d;
 int list[50][5], stu[50], avg[5];
 while (scanf("%d%d", &n, &m) != EOF)
 {
 memset(list, 0, sizeof(list));
 memset(stu, 0, sizeof(stu));
 memset(avg, 0, sizeof(avg));
 for (i = 0; i 

开二维数组比较方便

HDOJ——笑点低……

 

 

 

昨天上了一下久违的HDOJ,闲的无聊看了一下排名,于是……

 

 

HDOJ2026:首字母变大写

首字母变大写

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 28648    Accepted Submission(s): 15941


Problem Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。

 

Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。

 

Output
请输出按照要求改写后的英文句子。

 

Sample Input
i like acm
i want to get an accepted

 

Sample Output
I Like Acm
I Want To Get An Accepted
#include
#include
int main()
{
    char sen[100];
    int len,i;
    while(gets(sen))
    {
    len=strlen(sen);
    for(i=0;i
	

LB-C语言作业8-13091811/812/813电子信息工程【指针一】

用指针输出两个数

题目描述

输入两个整数,存放在整型变量a,b中

将变量a,b的地址存储到指针变量p1和p2中,利用指针变量p1和p2输出a和b的值,要求先输出小值再输出大值

输入描述
两个整数
输出描述
从小到大输出两个整数
输入样例
81 75
输出样例
75 81

<div class=”panel_bottom”>

#include <stdio.h>
void main()
{ int a,b,*p1,*p2;
p1=&a;
p2=&b;
scanf("%d%d",&a,&b);
if(*p1<*p2)
printf("%d %dn", *p1,*p2);
else
printf("%d %dn", *p2,*p1);
}

<div class=”panel_bottom”>

计算两个数的和与乘积。

题目描述
输入两个数,存储在变量a、b中,再定义两个指针变量p1,p2使它们分别指向变量a、b,利用指针变量p1,p2计算a、b两个数的和与乘积。
输入描述
输入两个整数
输出描述
输出两个数的和及乘积
输入样例
2 3
输出样例
5  6

<div class=”panel_bottom”>

#include <stdio.h>
void main()
{ int a,b,*p1,*p2;
p1=&a;
p2=&b;
scanf("%d%d",&a,&b);
if(*p1<*p2)
printf("%d %dn", *p1,*p2);
else
printf("%d %dn", *p2,*p1);
}

<div class=”panel_bottom”>

HDOJ2055:An easy problem

Problem Description

we define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, … f(Z) = 26, f(z) = -26;

Give you a letter x and a number y , you should output the result of y+f(x).

 

 

Input

On the first line, contains a number T.then T lines follow, each line is a case.each case contains a letter and a number.

 

 

Output

for each case, you should the result of y+f(x) on a line.

 

 

Sample Input

6

R 1

P 2

G 3

r 1

p 2

g 3

 

 

Sample Output

19

18

10

-17

-14

-4

强迫症版代码:

#include 
int main()
{
 int n, a;
 char c;
 scanf("%d%*c", &n);
 while (n-- && scanf("%c%d%*c", &c, &a))
 printf("%dn", a + (c 

正常版代码:

 

 

HDOJ2029:Palindromes _easy version

Problem Description

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

 

 

Input

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。

 

 

Output

如果一个字符串是回文串,则输出”yes”,否则输出”no”.

 

 

Sample Input

4

level

abcde

noon

haha

 

 

Sample Output

yes

no

yes

no

#include
#include
int main()
{
 char a[1000];
 int n,ni,len,i,ii,flag;
 scanf("%d",&n);
 getchar();
 for(ni=1;ni

没什么好说的,处理字符的时候要注意加一个getchar()。欢乐地一次过

HDOJ2030:汉字统计

Problem Description

统计给定文本文件中汉字的个数。

 

 

Input

输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。

 

 

Output

对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。

 

[Hint:]从汉字机内码的特点考虑~

 

 

 

Sample Input

2

WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!

马上就要期末考试了Are you ready?

 

 

Sample Output

14

9

#include
#include
int main()
{
 int n,ni,m,sum;
 char a[1000];
 scanf("%d",&n);
 getchar();
 for(ni=1;ni

汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 
计算机中, 补码第一位是符号位, 1 表示为 负数,
所以 汉字机内码的每个字节表示的十进制数都是负数
统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案
 
一开始总是在输入n的时候就输出结果,后来加了一个getchar()就可以正常输入了。

LB-C语言作业6-13091811/812/813电子信息工程

大值和第一个数交换位置

题目描述

输入n(n≤20)和n个整数放在一维数组中,找出其中最大的数,将它与数组中的第一个数交换位置,然后输出这些数。

提示:找最大数的同时,要记录最大数所在的数组元素的下标(元素号),才能与第一个数交换位置。

说明:因为n<=20,所以数组定义时的长度为20。

输入描述

输入n和n个整数数

输出描述

输出数据占一行,数据间用一个空格分开。

输入样例

5 78 99 34 112 67

输出样例

112 99 34 78 67