• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

编程初学者入门10_输入整数序列,判断是否是有序序列,有序,指序列的整数从小到大排序或者从大到小排序。(C/C++的break跳出几层循环、Java实现Arrays.sort排序数组

武飞扬头像
sichaolong
帮助1

题目描述

输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序。

  • 输入描述:
    第一行输入一个整数N(3≤N≤50)。
    第二行输入N个整数,用空格分隔N个整数。
  • 输出描述:
    输出为一行,如果序列有序输出sorted,否则输出unsorted。
  • 我的解答

注意题干的要求是判断是否有序,包括 升序、降序(注意 1,1,1,1 也是有序的

基本思路就是 需要设置两个标记,分别用来判断 升序、降序

我采用上下两个嵌套循环,上面嵌套循环 比较相邻的 元素 判断 是否升序,下面同理判断是否降序

需要注意的点:

  • 两层嵌套循环,内层使用break,只能跳出内层循环(之前一直不清楚),本题需要 外部也设break
  • 比较相邻元素的时候,一定要包含 ==的情况
  1. 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;
    
    
 
    
}
  1. 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
系列文章
更多 icon
同类精品
更多 icon
继续加载