| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 466 人关注过本帖
标题:一道题目
收藏  订阅  推荐  打印 
sonic3003
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2006-3-17
一道题目

•Given an integer n (1 £ n £ 9), write a program to print the numbers from 1 to n2 in the following manner (suppose n = 5):
13 14 15 16 01
12 23 24 17 02
11 22 25 18 03
10 21 20 19 04
09 08 07 06 05
•Separate the process into the top-half and the bottom-half.


我刚刚开始学习c 这是老师布置得一道题目 哪位高手教教我
附件: 只有本站会员才能下载或查看附件,请您 登录注册
搜索更多相关主题的帖子: DIV  题目  pound  
2006-3-17 20:42
feng1256
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:14
帖子:2891
积分:29010
注册:2005-11-24

[CODE]
#include <stdio.h>
#include <conio.h>
#define N 11 /* 只要比预计输入的阶数大2就可*/
void main()
{
int i=0,j,k=1,n;
int a[N][N];

scanf("%d",&n);
j=n-1;
while(1)
{
while(a[i][j]==0&&i<n) /* 未赋值的最后一竖行*/
a[i++][j]=k++;
i--;
j--;

while(a[i][j]==0&&j>=0) /* 未赋值的最后一横行*/
a[i][j--]=k++;
j++;
i--;

while(a[i][j]==0&&i>=0) /* 未赋值的第一竖行*/
a[i--][j]=k++;
i++;
j++;

while(a[i][j]==0&&j<n) /* 未赋值的第一横行*/
a[i][j++]=k++;
i++;
j--;

if(k==n*n+1) /* 完毕条件*/
break;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf(" %02d",a[i][j]); /* 输出占两位,不足的用0 补 */
printf("\n");
}
getch();
}

[/CODE]

[此贴子已经被作者于2006-3-18 1:05:17编辑过]


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-3-17 23:38
sonic3003
Rank: 1
等级:新手上路
帖子:5
积分:150
注册:2006-3-17

谢谢了~~~


2006-3-18 08:40
haishanglang
Rank: 3Rank: 3
等级:中级会员
帖子:378
积分:3880
注册:2006-3-2

运行后怎么不出结果哦

2006-3-18 08:44
梦想中国
Rank: 4
等级:高级会员
威望:5
帖子:539
积分:5490
注册:2006-2-26

此问题需要等


2006-3-18 09:33
梦想中国
Rank: 4
等级:高级会员
威望:5
帖子:539
积分:5490
注册:2006-2-26

此问题中的n有没有限制,随便输入,还是只小于在1--9之间。

2006-3-18 09:34
等待
Rank: 2
等级:注册会员
帖子:165
积分:1760
注册:2005-12-1

有点问题

2006-3-18 09:36
梦想中国
Rank: 4
等级:高级会员
威望:5
帖子:539
积分:5490
注册:2006-2-26

楼主呢?你的n到底有没有限制,最大多少。
晕,这年头帮人搬砖还得等。

2006-3-18 11:14
盖茨他爹
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:28
帖子:5260
积分:53182
注册:2005-5-3

晕,你试试不就知道了吗

中国有两种人:花纳税人的钱的人和花自己的血汗钱的人。 花纳税人的钱的人往往比较乐观,他们眼中的社会充满了爱和繁荣。 花自己血汗钱的人相对比较悲观,他们眼中的社会充满了不公平和贫穷。
2006-3-18 11:19
梦想中国
Rank: 4
等级:高级会员
威望:5
帖子:539
积分:5490
注册:2006-2-26

以下程序输入10以内都可以:
#include<stdio.h>
#include<conio.h>
int num,horiz=30,vertical=5;

void Output1(void);
void Output2(void);
void Output3(void);
void Output4(void);
int main(void)
{
int n,i,j;

clrscr();
printf("Please input n: ");
scanf("%d",&n);

num=1;

while(num<=n*n)
{
if(num<=n)
Output1();
else if(num>n && num<=2*n-1)
Output2();
else if(num>2*n-1 && num<=3*n-2)
Output3();
else if(num>3*n-2 && num<=4*n-4)
Output4();
else if(num>4*n-4 && num<=5*n-6)
Output1();
else if(num>5*n-6 && num<=6*n-9)
Output2();
else if(num>6*n-9 && num<=7*n-12)
Output3();
else if(num>7*n-12 && num<=8*n-16)
Output4();
else if(num>8*n-16 && num<=9*n-20)
Output1();
else if(num>9*n-20 && num<=10*n-25)
Output2();
else if(num>10*n-25 && num<=11*n-30)
Output3();
else if(num>11*n-30 && num<=12*n-36)
Output4();
else if(num>12*n-36 && num<=13*n-42)
Output1();
else if(num>13*n-42 && num<=14*n-49)
Output2();
else if(num>14*n-49 && num<=15*n-56)
Output3();
else if(num>15*n-56 && num<=16*n-64)
Output4();
else if(num>16*n-64 && num<=17*n-72)
Output1();
else if(num>17*n-72 && num<=18*n-81)
Output2();
else if(num>18*n-81 && num<=19*n-90)
Output3();
}

getch();
return 0;
}

void Output1(void)
{
gotoxy(horiz,vertical+=2);
printf("%02d",num++);
}
void Output2(void)
{
gotoxy(horiz-=3,vertical);
printf("%02d",num++);
}
void Output3(void)
{
gotoxy(horiz,vertical-=2);
printf("%02d",num++);
}
void Output4(void)
{
gotoxy(horiz+=3,vertical);
printf("%02d",num++);
}



2006-3-18 13:49
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.079789 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved