| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1124 人关注过本帖
标题:深圳一公司招聘题(前日)
只看楼主 加入收藏
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
 问题点数:0 回复次数:12 
深圳一公司招聘题(前日)

3、用递归算法判断数组a[N]是否为一个递增数组。


下面是我写的算法,那位有更好的:

#include <stdio.h>
#include <conio.h>
#define N 5

int Judgment(int a[]);

int main()
{
int a[N], i, flag = 1;

printf("Enter array data: ");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}

flag = Judgment(a);

if (flag == 1)
{
printf("increment array.\n");
}
else if (flag == 0)
{
printf("no increment array.\n");
}

getch();
return 0;
}

int Judgment(int a[])
{
static i = 0, flag = 1;

if(i < N - 1)
{
if (a[i] > a[i + 1])
{
flag = 0;
}
i++;
Judgment(a);
}

return flag;
}




















搜索更多相关主题的帖子: 深圳 招聘 int Judgment flag 
2006-05-06 12:24
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

#include <stdio.h>
#include <conio.h>
#define N 5

int Judgment(int a[], int num);

int main()
{
int a[N], i, flag = 1;

printf("Enter array data: ");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}

flag = Judgment(a, N);

if (flag == 1)
{
printf("increment array.\n");
}
else if (flag == 0)
{
printf("no increment array.\n");
}

getch();
return 0;
}

int Judgment(int a[], int num)
{
static i = 0, flag = 1;

for(i=0; i<num; i++)
{
if (a[i] >= a[i+1]) //假如发现哪两个不是递增,立刻跳出;
{
flag = 0;
break;
}
}

return flag;
}

哥们,用递归效率差已.我帮你改了代码.


我的原则很简单:不做不喜欢的事!
2006-05-06 12:41
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
假如数据太大,用内存动态分配和指针来做即可.

我的原则很简单:不做不喜欢的事!
2006-05-06 12:42
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
人家要求就是用递归,不用递归不行

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 12:43
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

哦,我倒没注意.甘你D程序得啦.


我的原则很简单:不做不喜欢的事!
2006-05-06 12:55
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用论坛在2006-5-6 12:24:00的发言:

3、用递归算法判断数组a[N]是否为一个递增数组。


下面是我写的算法,那位有更好的:

#include <stdio.h>
#include <conio.h>
#define N 5

int Judgment(int a[]);

int main()
{
int a[N], i, flag = 1;

printf("Enter array data: ");
for (i = 0; i < N; i++)
{
scanf("%d", &a[i]);
}

flag = Judgment(a);

if (flag == 1)
{
printf("increment array.\n");
}
else if (flag == 0)
{
printf("no increment array.\n");
}

getch();
return 0;
}

int Judgment(int a[])
{
static i = 0;

if(i < N - 1)
{
if (a[i] > a[i + 1])
{
return 0; /*这样才好*/
}
i++;
Judgment(a);
}

return 1;
}
flag变量不要,这样简单些,至于本质算法应该是最简了吧,就我来讲.




















对不礼貌的女生收钱......
2006-05-06 12:56
lisong526
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-4-9
收藏
得分:0 

/*用递归算法判断数组array[N]是否为一个递增数组*/
#include <stdio.h>
#include <conio.h>
#include "stdlib.h"


int Judgment(int a[],int i,int N);

int main()
{
int *array=NULL,N,i,flag=1;

printf("Enter the length of the array: ");
scanf("%d",&N);
array=(int *)malloc(N*sizeof(int));/*实现动态数组*/

printf("Enter array data: ");
for (i=0;i<N;i++)
{
scanf("%d", &array[i]);
}

flag=Judgment(array,0,N);

if (flag==1)
{
printf("increment array.\n");
}
else if(flag==0)
{
printf("no increment array.\n");
}

getch();
}

int Judgment(int a[],int i,int N)
{
int flag=1;

if(i<N)
{
if(a[i]>a[i+1])
return 0; /*出现不递增则返回0,不再向下验证*/
i++;
flag=Judgment(a,i,N);
}
return flag;
}


因为有梦想,所以才会有成功!
2006-05-06 13:15
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用lisong526在2006-5-6 13:15:00的发言:

/*用递归算法判断数组array[N]是否为一个递增数组*/
#include <stdio.h>
#include <conio.h>
#include "stdlib.h"


int Judgment(int a[],int i,int N);

int main()
{
int *array=NULL,N,i,flag=1;

printf("Enter the length of the array: ");
scanf("%d",&N);
array=(int *)malloc(N*sizeof(int));/*实现动态数组*/

printf("Enter array data: ");
for (i=0;i<N;i++)
{
scanf("%d", &array[i]);
}

flag=Judgment(array,0,N);

if (flag==1)
{
printf("increment array.\n");
}
else if(flag==0)
{
printf("no increment array.\n");
}

getch();
}

int Judgment(int a[],int i,int N)
{
int flag=1;

if(i<N)
{
if(a[i]>a[i+1])
return 0; /*出现不递增则返回0,不再向下验证*/
i++;
flag=Judgment(a,i,N);
}
return flag;
}

if(i<N)

过了吧


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 13:54
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

呵呵,楼上的心细


对不礼貌的女生收钱......
2006-05-06 14:22
b9666118
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-4-21
收藏
得分:0 

2006-05-06 16:09
快速回复:深圳一公司招聘题(前日)
数据加载中...
 
   



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

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