c语言判断输入的数组是升序还是降序

从屏幕输入一个数组然后判断是升序还是降序,升序就输出return1,降序输出-1,乱序输出0,递归要去,代码越简单越好。... 从屏幕输入一个数组 然后判断是升序还是降序,升序就输出return 1,降序输出-1,乱序输出0,递归要去,代码越简单越好。 展开
 我来答
小罗卜头LMY
推荐于2016-10-19 · TA获得超过184个赞
知道小有建树答主
回答量:141
采纳率:66%
帮助的人:40万
展开全部
判断数组是升序还是降序的前提是数组有序,只需要判断数组第一个元素和第二个元素的大小即可,若第一个元素大于第二个元素,则是降序;否则是升序
du小虾
推荐于2018-03-01 · TA获得超过497个赞
知道小有建树答主
回答量:373
采纳率:57%
帮助的人:211万
展开全部
int arr[10];
int iFlag1 = 0,iFlag2 = 0;

for(int i=0;i<10-1;i++)
{
if(arr[i]<arr[i+1])
iFlag1++;
else if(arr[i]>arr[i+1])
iFlag2++;
else//相等的情况
{
iFlag1++;
iFlag2++;

}

}

if(iFlag1==9) return 1;
else if(iFlag2==9) return -1;
else if(iFlag1==9&&iFlag2==9) return 2;//表示数组所有元素相同
else return 0;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
I_everything
2013-06-14 · 超过24用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:67.2万
展开全部
这是要递归还是不要递归?。。

//非递归版
#include <stdio.h>

int Test(int a[],int size)//a数组从0开始存储,size是元素个数
{
if(size==1) return 0;//只有一个数的话,无法判断
int i;
for(i=1;i<size;i++)
if((a[i]-a[i-1])*(a[1]-a[0])<=0)//判断是否乱序(我这里若两数相等也判为乱序了)
return 0;
return a[1]-a[0]<0?-1:1;
}

int main()
{
int a[1000]={0},n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("%d\n",Test(a,n));
return 0;
}

这是直接在回答框里敲出来的。。可能有些小问题,编译不过去。不过算法是很明确的。你可以参考一下,最好自己打一遍,这样才会有提高。加油啦!
如果看不太懂可以追问我,这两天随时在线。
更多追问追答
追问
递归啊
追答
#include 

inline int Cmp(const int &a,const int &b)//比较两数大小,a>b返回-1,a==b返回0,a<b返回1
{
return b-a<0 ? -1 : (a==b?0:1) ;
}

int Test(int a[],int size)//a数组从0开始存储,size是元素个数
{
if(size==1) return 0;//只有一个数的话,无法判断
if(size==2)
return Cmp(a[0],a[1]) ;//只剩两个数的话,直接比较
else
return (Test(a+1,size-1)==Cmp(a[0],a[1])) * Cmp(a[0],a[1]);
}

int main()
{
int a[1000]={0},n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("%d\n",Test(a,n));
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敏澎Q1
2013-06-14 · TA获得超过991个赞
知道小有建树答主
回答量:944
采纳率:0%
帮助的人:764万
展开全部
void test_sort()
{
int array[5] = {1,3,10,7,9};
int len = sizeof(array)/sizeof(int);
int flag = 0,tmp = 0,i = 0;
if(array[0]>array[1])
{
flag = 1;
}
tmp = flag;
for(i = 1; i<len; ++i)
{
if(flag == 0)
{
if(array[i]<array[i+1])
{
continue;
}
else
{

flag = 1;
break;
}
}
if(flag == 1)
{
if(array[i]>array[i+1])
{
continue;
}
else
{
flag = 0;
break;
}
}
}
if(flag != tmp)
{
printf("unsorted array\n");
}
else
{
printf("sorted array\n");
}

}
追问
不是这个  这个是百度的。而且这貌似只是判断有序和无序吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式