标题:求助!打印图形问题!
只看楼主
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
 问题点数:0 回复次数:6 
求助!打印图形问题!

下面是在一个4*4的数组中随意输入坐标,然后在该坐标和该坐标所在的行,该坐标所在的列,和两条斜线上全部赋'*'(星号字符),我晕,现在为什么当坐标为(2,2)时,坐标(1,0)的位置也出现星号,那位大哥看看,怎么回事

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

int main(void)
{
char a[N][N];
int i, j, k, m, n;

for (m = 0; m < N; m++)
{
for (n = 0; n < N; n++)
{
a[m][n] = ' ';
}
}

printf("Enter position i and j: ");
scanf("%d %d", &i, &j);
a[i][j] = '*'; /* a[2][1] = '*' */

for (k = 0; k < N; k++) /* horizontal */
{
a[i][k] = '*';
}
for (k = 0; k < N; k++) /* vertical */
{
a[k][j] = '*';
}
m = i; n = j; /* left top */
while (m > 0 && n > 0)
{
a[--m][--n] = '*';
}
m = i; n = j; /* right bottom */
while (m < N && n < N)
{
a[++m][++n] = '*';
}
m = i; n = j; /* right top */
while (m > 0 && n < N)
{
a[--m][++n] = '*';
}
m = i; n = j; /* left bottom */
while (m < N && n > 0)
{
a[++m][--n] = '*';
}

for (m = 0; m < N; m++)
{
putchar('\n');
for (n = 0; n < N; n++)
{
if (a[m][n] == '*')
{
putchar('*');
putchar(' ');
}
else
{
putchar('@');
putchar(' ');
}
}
}

getch();
return 0;
}



























搜索更多相关主题的帖子: 图形 坐标 打印 星号 include 
2006-05-06 18:57
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
没人告诉我吗?没人管拉倒,自己来

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-06 20:13
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 

我写了个你对照下 我把范围放大了些
[CODE]
#include "stdio.h"
#define N 9

int main()
{

int i,j,m,n;

printf("Enter position m and n: \n");
scanf("%d%d",&m,&n);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%c ",(i==n||j==m||m-j==n-i||m-j==i-n)?42:32);
printf("\n");
}
return 0;
}

[/CODE]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-06 23:24
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 
我噻,这也行

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

版主真强啊,这也能想到!!

对不礼貌的女生收钱......
2006-05-07 08:51
queyapahaha
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-5
得分:0 
能解释以下算法 吗

我为程狂!!
2006-05-07 09:25
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 
(i==n||j==m||m-j==n-i||m-j==i-n)?42:32);
行数等于n后面不再计算,表达式值为1,直接打印*;否则
列数等于m后面不再计算,表达式值为1,打印*;再否则
至于后面分别是y-n=x-m和y-n=-x+m两条线上的x,y循环而已.
满足方程即表达式值为1,打印*.


对不礼貌的女生收钱......
2006-05-07 09:36



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




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

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