| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 603 人关注过本帖
标题:问题,实在是编不出来了
只看楼主 加入收藏
victorchang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-3-8
收藏
 问题点数:0 回复次数:8 
问题,实在是编不出来了
图片附件: 游客没有浏览图片的权限,请 登录注册

2007-03-09 12:57
victorchang
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-3-8
收藏
得分:0 
难道真没会做了么?
2007-03-09 13:11
半支烟
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-1-16
收藏
得分:0 

你得自己去找规律嘛。。每一个斜行,括号里面,第一个递减,第二个数递增,

而(m,n)所处的位置是第m斜行的第n个位置。。自己再想想吧。。。


2007-03-09 13:18
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
#include <stdio.h>
main()
{
find(3,4);
}
find(int x,int y)
{int i=1,j=1,down=1,right=1,k=1;
printf("(1,1) ");
while((i!=x)||(j!=y))
{ if(down==1)
if(right==1)
if(j==1)
{ i++;
down=0;
k++;
}
else
{ j++;
right=0;
k++;
}
else
{ i++;
j--;
k++;
if(j==1)
right=1;
}
else
if(right==1)
{ i--;
j++;
k++;
if(i==1)
down=1;
}
printf("(%d,%d) ",i,j);
if(k%5==0)
printf("\n");
};

}

雁无留踪之意,水无取影之心
2007-03-09 14:26
cctv2cctv
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2006-9-4
收藏
得分:0 

明显小学九九乘法表增强版

2007-03-09 18:39
wlly
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-3-9
收藏
得分:0 
4楼编的不错啊~~支持~
2007-03-09 20:17
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 

由于看到上面老兄的输出格式和题目不一样,我也来试试
#include "stdio.h"
#define M 3 /*修改这里的值就可看到不同的(m,n)的结果*/
#define N 4
int draw_point(int x,int y);
main()
{
int i,a=1,b=1;
while((a+b)<=(M+N))
{
while((a+b)<=(M+N))
{
if((a+b)<(M+N))
{
draw_point(a,b);
}
else
{
if((M+N)%2==0)
{
if(a<=M)
draw_point(a,b);
}
else
{
if(b<=N)
draw_point(a,b);
}
}
b++;
}
printf("\n");
b=1;
a++;
}
}

draw_point(int x,int y)
{
printf("(%d,%d)",x,y);
}

我的算法是按行输出,根据两个数的和判断是否需要输出


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-09 21:37
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
看清题目要求,不能乱来

雁无留踪之意,水无取影之心
2007-03-09 22:17
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
以下是引用PcrazyC在2007-3-9 22:17:22的发言:
看清题目要求,不能乱来

的确看错题了,修改一下:
#include "stdio.h"
#define M 4
#define N 3
int draw_num=0;
int draw_point(int x,int y);
main()
{
int sum=2,a,b;
while(sum<=(M+N))
{
if(sum%2==0)
{
a=1;
while(a<sum)
{
b=sum-a;
draw_point(a,b);
a++;
if(sum==(M+N))
{
if(a>M)
break;
}
}
}
else
{
b=1;
while(b<sum)
{
a=sum-b;
draw_point(a,b);
b++;
if(sum==(M+N))
{
if(b>N)
break;
}
}
}
sum++;
}
}

draw_point(int x,int y)
{
printf("(%d,%d)",x,y);
draw_num++;
if(draw_num%5==0)
printf("\n");
}


“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2007-03-09 23:12
快速回复:问题,实在是编不出来了
数据加载中...
 
   



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

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