最高分数的学生姓名
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
输入:
第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:
分数 姓名
分数是一个非负整数,且小于等于100;
姓名为一个连续的字符串,中间没有空格,长度不超过20。
数据保证最高分只有一位同学。
输出:
获得最高分数同学的姓名。
样例输入:
5
87 lilei
99 hanmeimei
97 lily
96 lucy
77 jim
样例输出:
Hanmeimei
#include<iostream>
using namespace std;
int main()
{
int n,a[101],max=0,t=0;string name,maxi;//用字符串定义学生姓名
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i]>>name;//输入分数和名字
if(a[i]>max)
{
max=a[i];
maxi=name;//存储最高分数学生名字
}
}
cout<<maxi;
return 0;
}
判断字符串是否为回文
输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。
输入:
输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。
输出:
如果字符串是回文,输出yes;否则,输出no。
样例输入:
abcdedcba
样例输出:
yes
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[101],b[101];int l,t=0;bool p=true;
gets(a);
l=strlen(a);//读取字符串长度
for(int i=l-1;i>=0;i--)
{
b[t]=a[i];//将a数组逆序赋值给b数组
t++;
}
for(int i=0;i<l;i++)
{
if(a[i]!=b[i])//a数组和b数组比较
{
p=false;
}
}
if(p==true) cout<<"yes";//如果字符串是回文,输出yes;
else cout<<"no";//否则,输出no。
return 0;
}
字符串p型编码
给定一个完全由数字字符('0','1','2',…,'9')构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此我们说122344111的p型编码串为1122132431;类似的道理,编码串101可以用来描述1111111111;00000000000可描述为"11个0",因此它的p型编码串即为110;100200300可描述为"1个1、2个 0、1个2、2个0、1个3、2个0",因此它的p型编码串为112012201320。
输入:
输入仅一行,包含字符串str。每一行字符串最多包含1000个数字字符。
输出:
输出该字符串对应的p型编码串。
样例输入:
122344111
样例输出:
1122132431
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[1001];int l,t=1;
gets(a);
l=strlen(a);//读取字符串长度
for(int i=0;i<l;i++)
{
if(a[i]==a[i+1])//当前字符与后一个字符是否相同
{
t++;//计数
}
else //不相同
{
cout<<t<<a[i];//先输出几个几
t=1;//从一开始(当前字符本身算一个)
}
}
return 0;
}
单词翻转
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入:
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出:
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入:
hello world
样例输出:
olleh dlrow
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a[500];int l,t=0;
gets(a);
l=strlen(a);//读取字符串长度
for(int i=0;i<l;i++)
{
if(a[i]!=' ') t++;//在没有遇到空格之前,计算单词长度
else if(t>0) //保证单词长度大于0
{
for(int j=i-1;j>=i-t;j--) //单词逆序输出
{
cout<<a[j];
}
cout<<" ";//单词与单词之间记得空格隔开
t=0;//单词长度清零
}
}
return 0;
}