数组排序题目描述对数组的元素按从小到大进行排序。
输入有两行第一行有一个整数n( 5 <= n <= 10 ) 第二行有n个整数输出输出更新后的数组
样例输入复制81 2 3 6 8 7 4 5
输出复制1 2 3 4 5 6 7 8
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i];
}
return 0;
}
数字和排序题目描述输入n个不超过30000的整数(n≤10)。然后求出每个数的数字和,再按每个数的数字和由小到大排列输出。
输入第一行为整数n 第二行为n个整数
输出由小到大排列的每个数的数字和(每个数之间保留一个空格)
样例输入复制433 104 87 16
输出复制5 6 7 15
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[2010];
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int t;
cin>>t;
int s=0;
while(t!=0)
{
s=s+t%10;
t=t/10;
}
a[i]=s;
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i];
}
return 0;
}
个位排序题目描述输入n个不超过30000的整数(n≤10)。按每个数的个位大小,由小到大排列,如果个位相同,按照本身大小从小到大输出。
输入第一行为整数n 第二行为n个整数
输出按照要求由小到大排列的数,空格隔开
样例输入复制633 104 87 16 95 55
输出复制33 104 55 95 16 87
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[2010];
int n=0;
cin>>n;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(a[j]%10>a[j+1]%10)
{
swap(a[j],a[j+1]);
}
else if(a[j]%10==a[j+1]%10&&a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
奇偶排序描述给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。
输入输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
输出按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[2000];
int la;
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int t;
cin>>t;
if(t%2=+1)
{
a[la]=t;
la++;
}
}
for(int i=0;i<la-1;i++)
{
for(int j=0;j<j-1-i;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<la;i++)
{
if(i==la-1)
{
cout<<a[i];
}
else{
cout<<a[i]<<",";
}
}
return 0;
}
奇偶排序描述给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。
输入输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。
输出按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
int a[2000];
n=10;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(a[j]%2==0&&a[j+1]%2==1)
{
swap(a[j],a[j+1]);
}
else if(a[j]%2==1&&a[j+1]%2==1)
{
swap(a[j],a[j+1]);
}
else if(a[j]%2==0&&a[j+1]%2==0)
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
寻找第K大数题目描述N个小朋友在一起做游戏。每个小朋友在自己的硬纸板上写一个数,然后同时举起来。接着,小y老师提一个问题,看哪个小朋友先抢答出来。问题是:在这N个数中,第K大的是哪个数?
输入输入文件的第一行为2个整数,依次为N和K( K <= N <= 1000 )。下面N行,每行为一个整数,表示从第1个小朋友到第N个朋友分别写的数。假设这些小朋友只知道-32768~32767之间的数。输出
输出文件只有一行,就一个数,为第K大的那个数。
样例输入复制4 31224
输出复制2
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n;
cin>>n;
int s;
cin>>s;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout<<a[s];
}
return 0;
}
求中位数题目描述中位数指的是一组数,如果按照大小排序排好后最中间的那个数的值,如果有偶数个元素,那么就是最中间两个数的平均数!比如:2 5 8 1 6,排序后的结果为1 2 5 6 8,那么这组数的中位数就是5!再比如:8 9 1 2 3 0,排序后的结果为0 1 2 3 8 9,那么这组书的中位数就是(2+3)/2=2.5
输入第一行:一个整数n代表有n个数(n≤100)第二行:n个数的值
输出中位数(结果保留1位小数)
样例输入复制52 5 8 1 6
输出复制5.0
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n=0;
int i,j;
for(int i=0;i<n;i++
{
cin>>a[i];
}
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
if (n % 2 == 1)
{
cout << a[n / 2] << endl;
}
else
{
cout << (double)(a[n / 2] + a[n / 2 - 1]) / 2 << endl;//
}
return 0;
}
优秀成绩的平均分题目描述期中考试结束了,老师想知道这次语文考试前5名同学的平均分是多少请你编程来帮老师计算一下!
输入第一行,一个整数n,代表本次考试的总人数(5<=n<=100)第二行n个整数,代表n个人的语文成绩(这n个人的分数是无序的)
输出语文成绩前5名同学的平均分(结果保留1位小数)
样例输入复制1098 98 100 96 99 90 91 87 80 100
输出复制99.0
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n;
cin>>n;
int s=0;
int p=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<5;i++)
{
s=s+a[i];
}
p=s/5;
cout<<p;
return 0;
}
题目描述期末考试语文成绩出来了,老师在课堂上公布了每位同学的语文成绩,小明想查一下自己的成绩在班级能排到第几名。请你编写一个程序,根据给定的所有同学的语文成绩以及小明的语文成绩,计算出小明的排名。(假设所有人成绩都不相等)
样例输入复制598 100 99 80 8798
输出复制3
输入第一行一个整数n代表学生总人数(n<=100)第二行,有n个整数,代表n个语文成绩(这些成绩都是0~100之间的分数)第三行一个整数x代表小明同学的语文成绩输出一个整数,代表小明同学的名次
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n;
cin>>n;
int s=0;
int p=0;
cin>>s;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
a[n-1]=s;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
p++;
if(a[i]=s)
{
cout<<p;
}
}
return 0;
}
病人排队描述病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:
1.老年人(年龄>= 60岁)比非老年人优先看病。
2. 老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。
3.非老年人按登记的先后顺序看病。
输入第1行,输入一个小于100的正整数,表示病人的个数;后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个空格隔开。
输出按排好的看病顺序输出病人的ID,每行一个
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[100];
int n;
cin>>n;
int s=0;
int p=0;
cin>>s;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
a[n-1]=s;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1;j++)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
p++;
if(a[i]=s)
{
cout<<p;
}
}
return 0;
}