5个数求最值
设计一个从5个整数中取最小数和最大数的程序。
输入描述
输入只有一组测试数据,为五个不大于1万的正整数。
输出描述
输出两个数,第一个为这五个数中的最小值,第二个为这五个数中的最大值,两个数字以空格隔开。
思路
-
主要是考排序算法的。将一组数据进行排序,然后输出头尾的值,即为最大或最小的。
-
本题用冒泡排序,外层控制排序趟数,为n-1趟。内层为第一个数与之后的所有数进行比较、交换。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[5];
for(int i=0; i<5; i++){
cin>>a[i];
}
for(int i=0; i<4; i++) //控制n-1趟冒泡
for(int j=0; j<4-i; j++){
if(a[j]>a[j+1]){ //比较相邻两个元素
int temp=a[j]; //交换
a[j]=a[j+1];
a[j+1]=temp;
}
}
cout<<a[0]<<" "<<a[4];
return 0;
}
ASCII码排序
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入描述
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出描述
对于每组输入数据,输出一行,字符中间用一个空格分开。
思路
字符也可以比较大小,是通过其ASCII的值来判断大小,所以直接比较即可。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n; //n组数据
for(int i=0; i<n; i++){
char a,b,c,d;
cin>>a>>b>>c;
if(a>b){ //比较大小,并交换
d=a;a=b;b=d;
}
if(a>c){
d=a;a=c;c=d;
}
if(b>c){
d=b;b=c;c=d;
}
cout<<a<<" "<<b<<" "<<c<<endl;
}
return 0;
}
小结
-
掌握常用的排序算法的书写!
-
字符也可以比较大小,它们是以ASCII值的大小作为比较的标准。