目录
数组逆序重放
题目描述
将一个数组中的值按逆序重新存放。例如,原来的顺序为8 6 5 4 1,要求改为1 4 5 6 8。
输入格式
输入为两行:第一行数组中元素的个数n,第二行是n个整数,每两个整数之间用空格分隔。
输出格式
输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
样例
输入样例5
8 9 5 4 1
输出样例
1 4 5 9 8
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
for(int i = n-1;i>=0;i--)
{
cout<<a[i]<<" ";
}
return 0;
}
最长最短单词
题目描述
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。试输出第1个最长的单词和第1个最短单词。
输入格式
一行句子。
输出格式
第1行,第一个最长的单词。
第2行,第一个最短的单词。
样例
样例输入I am studying Programming language C in Peking University
样例输出
Programming
I
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
char a[20000];
char wlong[200];
char wshort[200],word[200];
int numlong=0,numshort=100;
int i,n,l,k,cl;
l=0;
k=0;
cin.getline(a,20000);
n=strlen(a);
for(i=0;i<=n;i++)
{
if(a[i]!=' '&&a[i]!=','&&a[i]!=0)
{
l++;
word[k]=a[i];
k++;
}
if(a[i]==' '||a[i]==','||a[i]==0)
{
if(l>numlong)
{
numlong=l;
strcpy(wlong,word);
}
if(l>0&&l<numshort)
{
numshort=l;
strcpy(wshort,word);
}
l=0;
k=0;
for(cl=0;cl<=200;cl++)
word[cl]='\0';
}
}
cout<<wlong<<endl;
cout<<wshort;
return 0;
}
统计误差范围内的数
题目描述
统计一个整数序列中与指定数字m误差范围小于等于X的数的个数。
输入格式
输入包含三行:第一行为N,表示整数序列的长度(N<=100);第二行为N个整数,整数之间以一个空格分开;第三行包含2个整数,为指定的整数m,误差范围X。
输出格式
输出输出为N个数中与指定数字m误差范围小于等于X的数的个数。
样例
样例输入5
1 2 3 4 5
3 1
样例输出
3
样例解释
提示样例中2,3,4都满足条件,故答案为3
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[110];
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int m,x;
cin>>m>>x;
int sum = 0;
for(int i = 0;i<n;i++)
{
if(a[i] < m+x)
{
sum++;
}
}
cout<<sum;
return 0;
}
有趣的跳跃
题目描述
在一个长度为n的数字序列中,如果相邻元素差的绝对值经过升序排序后正好是1~n-1,则认定该序列存在“有趣的跳跃”。例如:数字序列1、4、2、3 的相邻数字差的绝对值分别为3、2、1,排序后是1、2、3,说明该序列存在着“有趣的跳跃”。
现在给你一个序列,请你判断该序列是否存在“有趣的跳跃”。
输入格式
第1 行为一个整数(不超过100000)。
接下来一行为个不超过100000 的整数。
输出格式
若存在,输出“yes”,否则输出“no”。
样例
样例输入:4
1 4 2 3
样例输出:
yes
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[110];
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int sum = 0;
for(int i = 0;i<n;i++)
{
if(a[i] >=1 || a[i] <= n-1)
{
sum++;
}
}
if(sum>0)
{
cout<<"yes";
}
else
{
cout<<"no";
}
return 0;
}
数字放大
题目描述
给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。
输入格式
包含三行:
第一行为N,表示整数序列的长度(N ≤ 100);
第二行为N个整数(不超过整型范围),整数之间以一个空格分开;
第三行包含一个整数(不超过整型范围),为指定的整数x。
输出格式
N个整数,为原序列放大之后的序列,整数之间以一个空格分开。
样例
样例输入3
1 5 7
2
样例输出
2 10 14
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int x;
cin>>x;
for(int i = 0;i<n;i++)
{
cout<<a[i]*x<<" ";
}
return 0;
}
内部元素之和
题目描述
输入一个整数矩阵,计算位于矩阵内部的元素之和。所谓矩阵内部的元素,不在第一行和最后一行的元素以及第一列和最后一列的元素。
输入格式
第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。接下来输入的m行数据中,每行包含n个整数(每个数大于等于0,小于1000),整数之间以一个空格分开。
输出格式
输出对应矩阵的内部元素和
样例
样例输入3 3
3 4 1
3 7 1
2 0 1
样例输出
7
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int x;
cin>>x;
for(int i = 0;i<n;i++)
{
cout<<a[i]*x<<" ";
}
return 0;
}
满足条件的数的累加
题目描述
现有n个整数,将其中个位数为k的数进行累加求和。
输入格式
第一行两个整数n、k,以空格分隔。(0 < n < 1000, 0 ≤ k ≤ 9)第二行n个非负整数,以空格分隔,每个数不大于100000。
输出格式
输出满足题目要求的累加和。
样例
样例输入10 7
2 5 7 17 11 18 4 27 1 7
样例输出
58
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int n,k;
cin>>n>>k;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int sum = 0;
for(int i = 0;i<n;i++)
{
if(a[i]%10 == k)
{
sum = sum + a[i];
}
}
cout<<sum;
return 0;
}
偶数降序输出
题目描述
给定一个长度为N(不大于500)的正整数序列,请将其中的所有偶数取出,并按降序输出。
输入格式
共2行:第1行为N;第2行为N 个正整数,其间用空格间隔。
输出格式
降序输出的偶数序列,数之间以空格间隔。数据保证至少有一个偶数。
样例
样例输入10
1 3 2 6 5 4 9 8 7 10
样例输出
10 8 6 4 2
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int b[110];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int s = 0;
for(int i = 0;i<n;i++)
{
if(a[i]%2 == 0)
{
b[s] = a[i];
s++;
}
}
for(int i = 0;i<=s;i++)
{
if(b[i]<b[i+1])
{
int f = b[i];
b[i] = b[i+1];
b[i+1] = f;
}
}
for(int i = 0;i<=s;i++)
{
cout<<b[i]<<" ";
}
return 0;
}
字符统计
题目描述
给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。
输入格式
输入包含一行,一个字符串,长度不超过1000。
输出格式
输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。
样例
样例输入abbccc
样例输出
c 3
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int b[110];
int n;
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int s = 0;
for(int i = 0;i<n;i++)
{
if(a[i]%2 == 0)
{
b[s] = a[i];
s++;
}
}
for(int i = 0;i<=s;i++)
{
if(b[i]<b[i+1])
{
int f = b[i];
b[i] = b[i+1];
b[i+1] = f;
}
}
for(int i = 0;i<=s;i++)
{
cout<<b[i]<<" ";
}
return 0;
}
统计指定范围里的数
题目描述
给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。
输入格式
第一行1个整数n、分别表示序列的长度。
第二行n个正整数,表示序列里的每一个数,每个数小于等于10000000。
第三行2个整数L、R,分别表示区间的左端点,区间的右端点。
输出格式
输出一个整数,表示序列中大于等于L且小于等于R的数的个数。
样例
样例输入5
11 8 1 10 16
1 10
样例输出
3
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int n;
cin>>n;
int a[110];
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int l,r;
cin>>l>>r;
int sum = 0;
for(int i = 0;i<n;i++)
{
if(a[i]>=l && a[i]<=r)
{
sum++;
}
}
cout<<sum;
return 0;
}
按照个位数排序
题目描述
对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。
输入格式
第一行1个整数n,表示序列的大小。( 0 < n ≤ 1000) 第二行n个正整数,表示序列的每个数,每个数不大于100000000。
输出格式
输出按照题目要求排序后的序列
样例
样例输入6
17 23 9 13 88 10
样例输出
10 13 23 17 88 9
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
int a[110];
int n,j,temp;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
j=i-1;
temp=a[i];
while(j>=0 && (temp%10<a[j]%10||(temp%10==a[j]%10&&temp<a[j])))
{
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
哇塞😍大帅哥/大美女给我点赞了 今天的你真好看!