标题:【C++求助】从键盘输入5个整数,判断该组数据的有序性,输出判断结果
只看楼主
fixed_star
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-12-15
 问题点数:0 回复次数:3 
【C++求助】从键盘输入5个整数,判断该组数据的有序性,输出判断结果
从键盘输入5个整数,判断该组数据的有序性,输出判断结果
1) 函数order:判断数据的有序性,升序/降序/无序分别返回1/-1/0;
2) main函数通过order函数的调用,输出判断的结果。
3) 输出结果格式:数据序列  :   升序/降序/无序。  
 若键盘输入:1  2  3  4   5
输出:1   2   3   4   5   :  升序
 若键盘输入:1  -2  -2  -4  -5
输出:1   -2   -2   -4   -5   :  降序
 若键盘输入:1  2  3  -4  - 5
输出:1   2   3   -4   -5   :  无序
4) 通过设置断点、单步跟踪调试等手段,观察程序的执行过程及数据的变化
搜索更多相关主题的帖子: 键盘 输入 判断 数据 输出 
2017-12-15 21:01
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
问问1 1 1 1 1 这样属于升序还是降序?~
其实判断很简单,看最前面的两个数就可以确定是升序还是降序的趋势了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-12-16 08:00
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
~
PS:这个是C写的,没看到题目用C++,可以试试自己改改~

程序代码:
#include<stdio.h>

#define N 5

int fun(int [],size_t n);

int main( void )
{
    int a[N];
    
    size_t i=0;
    
    for (i=0;i!=N;++i)
        if (scanf("%d",&a[i])!=1)
            return 1;
            
    printf("%d",fun(a,N));
    
    return 0;
}

int fun(int a[],size_t n)
{
    
    size_t i=0;
    
    unsigned flag;

    if (n==1)
        return 1;
    
    while (a[i]==a[++i]&&i!=n-1);
    
    for (flag=a[i]<a[i-1];(a[i]==a[i-1]||(a[i]>a[i-1])^flag)&&i!=n-1;++i);
   
    return i!=n-1?0:1-2*flag;
    
}


[此贴子已经被作者于2017-12-16 10:32编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-12-16 09:13
fixed_star
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-12-15
得分:0 
回复 3楼 九转星河
好的谢谢了,小改了一下,vs2010调试没有问题
2017-12-17 17:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483412-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.680094 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved