编程初学者入门10_输入整数序列,判断是否是有序序列,有序,指序列的整数从小到大排序或者从大到小排序。(C/C++的break跳出几层循环、Java实现Arrays.sort排序数组
题目描述
输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序。
- 输入描述:
第一行输入一个整数N(3≤N≤50)。
第二行输入N个整数,用空格分隔N个整数。 - 输出描述:
输出为一行,如果序列有序输出sorted,否则输出unsorted。 - 我的解答
注意题干的要求是判断是否有序,包括 升序、降序(注意 1,1,1,1 也是有序的)
基本思路就是 需要设置两个标记,分别用来判断 升序、降序
我采用上下两个嵌套循环,上面嵌套循环 比较相邻的 元素 判断 是否升序,下面同理判断是否降序
需要注意的点:
- 两层嵌套循环,内层使用
break
,只能跳出内层循环(之前一直不清楚),本题需要 外部也设break
- 比较相邻元素的时候,一定要包含
==
的情况
- C 代码
#include<bits/stdc .h>
using namespace std;
int main()
{
int len,arr_num,flag_sheng = 0,flag_ni = 0;
cin>>len;
int arr[len];
for(int i = 0;i<len;i ){
cin>>arr_num;
arr[i] = arr_num;
}
//判断升序
for(int i = 0;i<len;i ){
for(int j = i 1;j<len;j ){
if(arr[i] <= arr[j])
flag_sheng = 1;
else{
flag_sheng = 0;
break;
}
}
//跳出外层循环,否则易出现后面的正确顺序,而flag 又重新赋值为 1
if(flag_sheng == 0)
break;
}
//判断降序
for(int i = 0;i<len;i ){
for(int j = i 1;j<len;j ){
if(arr[i] >= arr[j])
flag_ni = 1;
else{
flag_ni = 0;
break;
}
}
//跳出外层循环,否则易出现后面的正确顺序,而flag 又重新赋值为 1
if(flag_ni == 0)
break;
}
if(flag_sheng ==1 || flag_ni == 1 )
cout<<"sorted"<<endl;
else
cout<<"unsorted"<<endl;
}
- Java实现代码
Java就是利用 另一个排序后的数组(需要引入新数组) 和 输入的数组 遍历比较
import java.util.Scanner;
import java.lang.*;
import java.util.Arrays;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int len = sc.nextInt();
int flag_sheng = 1,flag_ni = 1;
//输入的数组,和新的放排序后元素的数组
int [] arr = new int[len];
int [] arr_sort = new int[len];
for(int i = 0;i<len;i ){
arr[i] = sc.nextInt();
arr_sort[i] = arr[i];
}
//对输入的数排序
Arrays.sort(arr_sort);
//循环对比
for(int i = 0;i<len;i ){
if(arr_sort[i] != arr[i])
flag_sheng = 0;
if(arr_sort[len -1 - i] != arr[i])
flag_ni = 0;
}
if(flag_ni == 1 || flag_sheng == 1)
System.out.println("sorted");
else
System.out.println("unsorted");
}
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiafaef
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22