郑州轻工业大学zzulioj1131~1139
本人小趴菜一颗,写博客是为了监督自己同时分享资源供大家参考,欢迎大家提出问题。
郑州轻工业大学zzulioj1131~1139
1131最常用字符
题目描述
英文字母里出现频率最高的是哪个字母呢? 给定一个字符串,输出字符串中出现次数最多的字母。
输入
输入一个只含有大小写字母和空格的字符串,长度不超过100,以回车结束。
输出
输出一个小写字母,表示该字符串中出现次数最多的字母。若答案有多个,则只输出ASCII码最小的那个。
样例输入 Copy
An apple
样例输出 Copy
a
代码如下(示例):
#include<stdio.h>
int main()
{
int a[300]={0};
char ch;
int i,max;
while(scanf("%c",&ch),ch!='\n')
{
if(ch>='A'&&ch<='Z')
a[ch+32]++;
else if(ch>='a'&&ch<='z')
a[ch]++;
}//进行每个字母次数统计
max=a[0];
for(i=1;i<300;i++)
{
if(a[i]>=max)
max=a[i];
}//找出出现最多的次数
for(i=0;i<300;i++)
{
if(a[i]==max)
{
printf("%c\n",i);
return 0;
}
}//输出出现次数最多的字母
}
1132数字字符统计
题目描述
对于给定的一个字符串,统计其中数字字符出现的次数。字符串长度不超过1000.
输入
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
输出
对于每个测试实例,输出该串中数字字符的个数,每个输出占一行。
样例输入 Copy
2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf
样例输出 Copy
6
9
代码如下(示例):
#include<stdio.h>
int main()
{
char a[1000];
int n,i,num,j;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
gets(a);
num=0;
for(j=0;a[j]!='\0';j++)
{
if(a[j]<='9'&&a[j]>='0')
{
num++;
}
}
printf("%d\n",num);
}
return 0;
}
1133: 单词个数统计
题目描述
从键盘输入一行字符,长度小于1000。统计其中单词的个数,各单词以空格分隔,且空格数可以是多个。
输入
输入只有一行句子。仅有空格和英文字母构成
输出
单词的个数
样例输入 Copy
stable marriage problem Consists of Matching members
样例输出 Copy
7
代码如下(示例):
#include<stdio.h>
#include<string.h>
int main()
{
int i,n,m;
char str[1000];
gets(str);
m=0;
for(i=0;str[i]!='\0';i++)
if(str[i]!=' '&&str[i+1]==' ')
m++;
n=strlen(str);
if(str[n-1]!=' ')
m++;
printf("%d\n",m);
return 0;
}
1134: 字符串转换
题目描述
输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。
输入
输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。
输出
将转换后的整数乘以2输出,测试数据保证结果在int范围内。
样例输入 Copy
sg987aa65t498
样例输出 Copy
197530996
代码如下(示例):
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
char str[100];
int i, t, k, n = 0;
gets(str);
for(i = 0; str[i] != '\0'; i++){
if(isdigit(str[i])){
k = str[i] - 48;
n = n * 10 + k;
}
}
t = n * 2;
printf("%d\n", t);
return 0;
}
1135: 算菜价题目描述
妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐。现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵。
输入
输入含有一些数据组,每组数据包括菜种(不含空格的字串),数量w(计量单位不论,一律为double型数)和单价p(double型数,表示人民币元数),因此,每组数据的菜价就是数量乘上单价啊。菜种、数量和单价之间都有空格隔开的。
输出
支付菜价的时候,由于最小支付单位是角,所以总是在支付的时候采用四舍五入的方法把分头去掉。最后,请输出一个精度为角的菜价总量。
样例输入 Copy
青菜 1 2
萝卜 2 1.5
鸡腿 2 4.2
样例输出 Copy
13.4
代码如下(示例):
#include<stdio.h>
int main()
{
double w,p,s=0;
while(scanf("%*s %lf %lf",&w,&p)!=EOF)
{
s+=w*p;
}
printf("%.1lf\n",s);
return 0;
}
1136: 首字母变大写
题目描述
输入一个只包含大小写英文字母和空格的句子,将每个单词的第一个字母改成大写字母。
输入
输入一个长度不超过100的英文句子。
输出
请输出按照要求改写后的英文句子。
样例输入 Copy
i like ACM
样例输出 Copy
I Like ACM
代码如下(示例):
#include<stdio.h>
#include<string.h>
int main()
{
char ch[100];
int i,j,k,l;
gets(ch);
for(i=0;ch[i]!='\0';i++)
{
if(ch[i]==' '&&ch[i+1]!=' ')
{
if(ch[i+1]>='a'&&ch[i]<='z')
ch[i+1]=ch[i+1]-32;
}
}
if(ch[0]>='a'&&ch[0]<='z')
ch[0]=ch[0]-32;
puts(ch);
return 0;
}
1137: 查找最大元素
题目描述
对于输入的字符串,查找其中的ASCII码值最大字母,在该字母后面插入字符串“(max)”。
输入
输入一行长度不超过200的字符串组成,字符串仅由大小写字母构成。
输出
输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
样例输入 Copy
abcdefgfedcbag
样例输出 Copy
abcdefg(max)fedcbag(max)
代码如下(示例):
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str[200],max;
gets(str); //输入字符串
max=str[0]; //定义初始最大值
//循环找字符串中ASCII码最大的字符
for(i=1;str[i]!='\0';i++)
{
if(str[i]>max)
max=str[i];
}
//利用循环,遇到最大值后面就加一个(max)输出,否则原样输出
for(i=0;str[i]!='\0';i++)
{
if(str[i]==max)
printf("%c(max)",str[i]);
else
printf("%c",str[i]);
}
return 0;
}
1138: C语言合法标识符
题目描述
输入一个字符串,判断其是否是C的合法标识符。C语言中规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
输入
输入一个长度不超过50的字符串。
输出
如果输入数据是C的合法标识符,则输出"yes",否则,输出“no”。
样例输入
8fixafghgjhjhjyuyuyyuyuyu
样例输出
no
代码如下(示例):
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{ char ch[50];//定义字符串
int x=1,n,i;
gets(ch);//读入字符串
n=strlen(ch);//计算出字符串长度并赋值给n
if((ch[0]>='a'&&ch[0]<='z')||(ch[0]>='A'&&ch[0]<='Z')||(ch[0]=='_'))//第一个字符为字母或者下划线
{
for(i=1;ch[i]!='\0';i++)
{
if((ch[i]>='a'&&ch[i]<='z')||(ch[i]>='A'&&ch[i]<='Z')||(ch[i]=='_')||(ch[i]>='0'&&ch[i]<='9'))//其他字符为规定的标识符字母、数字和下划线
{
x++;
}
}//对比x与n来进行判断
if(x==n)
{
printf("yes");
}
else
printf("no");
}
else
printf("no");
return 0;
}
1139: 输出最短字符串
题目描述
输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个。
输入
第一行是一个整数n,后面跟着n行,每行包括一个由字母和数字和空格组成的字符串,长度不超过1000。
输出
长度最短的字符串,若长度相同则输出出现较早的那一个。·
样例输入 Copy
5
How are you!
Happy
Good!
Hello world!
Thinks
样例输出 Copy
Happy
代码如下(示例):
#include <stdio.h>
#include <string.h>
int main() {
char str[1000], ch[1000];
int i, n;
// 输入n
scanf("%d", &n);
// 吸收输入n后的换行符
getchar();
// 输入字符串
gets(str);
// 将字符串str复制到ch
strcpy(ch, str);
for(i = 1; i < n; i++){
// 输入字符串
gets(str);
// 比较字符串长度
if(strlen(ch) > strlen(str))
strcpy(ch, str);
}
printf("%s\n", ch);
return 0;
}